You are confusing
<(…). You used the former, which passes the output as arguments to
vimdiff. For example, if the last line of
bar bar bar, then the following command
echo $(tail -1 /path/to/foo)
is equivalent to
echo bar bar bar
Instead, you need to use
<(…). This is called process substitution, and passes the output as a pseudo-file to the
vimdiff command. Hence, use the following.
vimdiff <(tail /tmp/cachain.pem) <(tail /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem)
This works in bash and zsh, but apparently there is no way to do process substitution in tcsh.