Ao colocar o comando e seus argumentos em aspas duplas, você apresentará a string inteira como um único comando que, como o shell indica, não foi encontrado.
O shell precisa executar a divisão de palavras para localizar listas de comandos, atribuições, comandos e seus parâmetros (consulte as seções de abertura de man bash
para saber mais).
Não use aspas duplas em todo o pipeline, apenas cite a variável:
echo -e 'testpassword\ntestpassword' | passwd "$line"