Não, eles não são iguais. Considere o comando echo . Você espera que
echo hello asleea
e
printf "asleaa\n" | echo hello
para produzir a mesma coisa? No caso top ... $(...) , o shell executa primeiro o material dentro de $(...) e coloca a saída na lista de argumentos para quando executa top .
É claro que top poderia ser escrito para ler valores adicionais de stdin se você deu a ele um flag que requer um argumento mas não deu um, mas não é assim que é implementado .