Part of me is suspecting that I may be one of the lucky 10,000 today but I figure it's worth putting this out there because if I wasn't aware of this then there may be others too. It turns out that the version of Drush that you just installed may not be the version of Drush that executes your command.
The NoOp destination plugin was needed because the NullDestination plugin appears to not work on purpose.
I had a Drupal 8 migration where there was some data that was available, but not available from the source DB. However, I was able to get this data in a separate CSV file and a value in the source db was available in this CSV file also. So I had a way around the issue.
This process plugin was created due to a dodgy source repository. Not all the files were available and the default file_copy plugin would crash and burn if the source was not there. This plugin can be used in the process section of a Drupal 8 migration like this;