O comando correto é:
echo "$(wc -l < file.txt) items in File"
Observe as aspas, por exemplo, fazendo:
$('du / -h | sort -h')
Você está dizendo para o shell "hey, execute 'du / -h | ord -h'", e o bash responderá: "oh não, eu não sei o que é 'du / -h | sort -h ' é". Eu não tenho 100% de certeza, mas acho que quando você cita algo, você evita caracteres especiais, como '|'.
A solução para o exemplo acima é remover as aspas.
$(du / -h | sort -h)
A saída do seu comando já diz o que está acontecendo:
zsh: command not found: cat file.txt | wc -l