Acho que isso vai fazer o que você quiser. Essencialmente, ele cria uma lista de todos os arquivos no diretório e abaixo; depois, digitaliza-os, imprimindo o nome de qualquer acerto; então conta quantos nomes de arquivos são retornados.
count=$(egrep -l "$ARG" $(find . -type f) | wc -l)
É possível que a localização retorne muitos arquivos (você receberá o erro "Argument list too long"). Nesse caso, esse mecanismo mais lento, mas mais seguro, funcionará:
count=$(find . -type f -exec egrep -l "$ARG" {} \; | wc -l)