Há '-----------------------' incluído no fluxo de saída e ele fica interpretado como um interruptor de comando que estraga tudo. Então, remova os traços traquinas usando tr antes de continuar o pipeline.
find . -type f -iname "*.pdf" -print0 -exec pdffonts {} \; | tr -d '-' | xargs -0 | grep 'Type 1' HelveticaNeueLight Type 1 yes no no 18 0 HelveticaNeueRoman Type 1 yes no no 22 0 HelveticaNeueMedium Type 1 yes no no 26 0 HelveticaNeueLight Type 1 yes no no 18 0 HelveticaNeueRoman Type 1 yes no no 22 0 HelveticaNeueMedium Type 1 yes no no 26 0 HelveticaNeueLight Type 1 yes no no 18 0 HelveticaNeueRoman Type 1 yes no no 22 0 HelveticaNeueMedium Type 1 yes no no 26 0 HelveticaNeueLight Type 1 yes no no 18 0 HelveticaNeueRoman Type 1 yes no no 22 0 HelveticaNeueMedium Type 1 yes no no 26 0
Você não pode usar 'grep -l' porque não existe mais o conceito de arquivos, tudo que sai de lá é um fluxo de texto. Se você quiser manter a lista de arquivos como um índice, provavelmente acabará com um loop for.