O padrão que você provavelmente pretendia usar era *.txt , mas está dizendo find -name para usar '*.txt' , incluindo as aspas simples, que não correspondem a nenhum arquivo. A expansão funciona da seguinte forma:
Na linha de comando , quando você digita
$ find -name '*.txt'
seu shell vê o '*.txt' como cotação, por isso, ele retira as cotas e transmite o conteúdo, *.txt , para find .
Na função ,
find -name "'$var'"
o shell expande $var para *.txt . Como a expansão ocorreu entre aspas duplas, o shell retira aspas duplas e transmite o conteúdo, '*.txt' , para find .
A solução é simples: remova as aspas simples em find -name "'$var'" .
Eu retomei sua função para você:
findin () {
if (( $# < 2 )); then
>&2 echo "Usage: findin <file pattern> <grep arguments ...>"
return 1
fi
pattern=$1
shift
printf '%s\n' "-- ${pattern}"
printf '%s ' "-- $@"
echo
find -type f -name "${pattern}" -print0 |
xargs -0 grep --color=auto "$@"
}