Contraste:
% whence -a print
print
% whence -a echo
echo
/bin/echo
Isso mostra que print existe apenas como um built-in, enquanto echo existe como um built-in e um executável. (Na verdade, seguindo o que foi mostrado acima, print e echo podem ser aliases, funções ou palavras reservadas; use whence -w para ver precisamente que tipo de objeto interno um nome representa.)
find é um comando externo, portanto não pode invocar nenhum shell embutido. Se você realmente precisar invocar os built-ins do seu shell, invoque um shell explicitamente:
find . -name filename -exec zsh -c 'print "$0"' '{}' \;
Nesse caso, não acredito que você queira que o print de zsh esteja incluído: find ' -print primary fará o trabalho, apenas de forma adequada (o zsh print incorporado expande as barras invertidas) .
find . -name filename -print
(Você pode até mesmo deixar de fora o -print aqui, porque -print é a ação padrão para find quando nenhuma ação é especificada.)
A razão pela qual existe um executável externo echo , mas nenhum chamado print é que echo é um comando padrão, portanto, ele fornece máxima disponibilidade até mesmo para programas que desejam invocá-lo sem passar por um shell. Em contraste, print é específico de zsh, portanto, somente os scripts zsh o usam em primeiro lugar.
(Ah, e no meu sistema, há um comando print , que envia arquivos para a impressora.)