pattern matching – Fill in the StringBlank

pattern = StringReplace["f_ath_r", "_" -> Blank[]]
"f" ~~ _ ~~ "ath" ~~ _ ~~ "r"
DictionaryLookup @ pattern
{"feather"}

Generalizing to allow __ and ___ in the input string:

toSPattern = StringReplace[#, 
  {"___" -> BlankNullSequence[], "__" -> BlankSequence[], "_" -> Blank[]}] &;

DictionaryLookup[toSPattern@"f_ath_r"]
{"feather"}
DictionaryLookup[toSPattern@"f___ath__r"]
{"father", "feather", "featherier", "forefather", "forgather"}