No primeiro caso você usa a lista de nomes de arquivos retornados por find
, enquanto que no segundo caso a lista de nomes de arquivos é um argumento para grep, então o grep irá procurar dentro dos arquivos.
O tubo é uma entrada padrão, não um arquivo nomeado. É por isso que o grep se comporta de maneira diferente.
De man grep
:
grep searches the named input FILEs (or standard input if no files are named, or if a single hyphen-minus (-) is given as file name) for lines containing a match to the given PATTERN.