Usando sh na porção -exec do comando, você pode iniciar um outro shell e executar seus comandos lá muito bem.
find . -name "*.dat" -exec csh -c 'echo -n $1; grep ID $1 | wc -l' {} {} \;
Ou, no meu caso, ao contar arquivos em diretórios. Eu uso "ls -f", uma vez que produz a saída ls não classificada, o que é significativamente mais rápido ao tentar separar a saída antes de contar.
com nova linha entre o nome do diretório e a contagem
find /somedir/some/dir -type d -print -exec sh -c ' ls -f $1/* | wc -l' {} {} \;
A saída é semelhante a esta
/dir/somedir/002/1066002
6
com tabulação entre o nome do dir e a contagem
find /somedir/some/dir -type d -exec bash -c 'echo -en "$1\t"; ls -f $1/* | wc -l' {} {} \;
A saída é semelhante a esta
/dir/somedir/002/1066002 6
link