This link is relevant What's the difference between substitution and piping to bash but I am not quite understanding everything that is being said.
What is the difference between piping
command1 | command2 versus expanding commands
command2 $(command1)? For example
vi $(find /home | grep xyzzy)
spits results out to vi to edit whereas
find /home | grep xyzzy | vi
doesn't seem to work for me. But I'm not understanding the fundamental difference.
Other relevant posts