O grep recursivo varrerá a árvore inteira e não se importará com a estrutura do diretório. Você precisa percorrer a estrutura e grep cada diretório individualmente.
find /var/www -type d -print | while read dirname; do grep -sil '<?' "$dirname"/*.php | head -3; done
O grep -s
lidará com condições em que não há arquivos php em um diretório.