Isso ocorre porque o processo não existe.
O $$
está sendo avaliado localmente e todos os servidores estão sendo passados no mesmo número. Um número que não é um PID usado atualmente nos servidores.
Todo o material $
é feito pelo shell, não pelos comandos. Você precisa escapar, para que seja avaliado pelo shell no servidor.
Experimente \$\$
por exemplo,
for i in $(cat servlist); do echo $i; ssh $i 'ps -p $$'; done
não testado