Você está confundindo $(…) com <(…) . Você usou o primeiro, que passa a saída como argumentos para vimdiff . Por exemplo, se a última linha de /path/to/foo contiver bar bar bar , o seguinte comando
echo $(tail -1 /path/to/foo)
é equivalente a
echo bar bar bar
Em vez disso, você precisa usar <(…) . Isso é chamado de substituição de processo e passa a saída como um pseudo -file para o comando vimdiff . Por isso, use o seguinte.
vimdiff <(tail /tmp/cachain.pem) <(tail /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem)
Isso funciona no bash e no zsh, mas aparentemente não existe nenhuma maneira de fazer a substituição do processo no tcsh.