Perl 5+-MList::Util+(min)
, 44 bytes
sub{$g=pop;map{min map$g=~s/$_/$_/g,/./g}@_}
Explanation
Not entirely dissimilar to other solutions, this is a function submission in Perl (unusual I know, but 1 byte shorter than my best "standard" attempt.
Takes the last argument as a string containing the grid, and every other argument as words to find. Iterates over each word (implicitly stored in $_
, splits (/./g
) and map
s over each letter, returning the number of s///
ubstitutions replacing the letter for itself, taking the min
imum for each word.