Um caminho:
find <search path> -type d -name 'Bar' -exec grep -r foo {} +
(sem o GNU find, substitua +
por \;
).
Desta forma, primeiro encontrará os diretórios que são denominados Bar
e, em seguida, recursivamente grep apenas nestes.
Para limitar a pesquisa a arquivos PHP:
find <search path> -type d -name 'Bar' -exec grep -r --include '*.php' foo {} +
Isso também pode ser feito com o shell globbing, mas isso depende de qual shell você está usando (obviamente).
EDITAR: Adicionando um exemplo de Bash:
shopt -s globstar
grep -r test <search path>/**/Bar/