Funciona para mim como esperado:
cd /tmp
mkdir sub
echo pattern > {.,sub}/f{1,2}
echo nomatch > {.,sub}/f3
bzip2 {.,sub}/f2
/tmp $ grep -r pattern .
./f1:pattern
./sub/f1:pattern
/tmp $ bzgrep -r pattern .
./f1:pattern
./f2.bz2:pattern
./sub/f1:pattern
./sub/f2.bz2:pattern
Você poderia verificar e postar sua versão do grep?
$ grep -V
grep (BSD grep) 2.5.1-FreeBSD