Você precisa adicionar um nível extra de citações:
ssh -l root ${host} "rpm -q --qf '<prm><N>%{N}</N></rpm>' --all"
Sem as aspas duplas extras, o comando dado ao shell remoto é
rpm -q --qf <prm><N>%{N}</N></rpm> --all
e o shell interpreta <
etc.
Na mensagem de erro, o backtick e as aspas simples são aspas reais, usadas para citar o comando. Eles não fazem parte do comando dado ao shell.