Powershell is a good scripting environment, but is a lousy interactive shell. And is is exactly _because_ it pipes objects instead of text.
When plain text is being passed around, one can build a pipe incrementally and immediately see what the input to the next command is and decide what to do with it. With powershell one has to constantly check the properties of the objects.
It is faster to do a 'some -command | grep foo' than 'some -command | Where { $_.SomeProperty -match "foo"}'.
Do this now format it for another command and another and another, non-object pipes are good for one-offs and anything that doesn't require structure (which almost everything beyond interactive use does). Syntactic arguments are moot if the language was a property of the operating system itself (vm based) the syntax differences would mean nothing.
When plain text is being passed around, one can build a pipe incrementally and immediately see what the input to the next command is and decide what to do with it. With powershell one has to constantly check the properties of the objects.
It is faster to do a 'some -command | grep foo' than 'some -command | Where { $_.SomeProperty -match "foo"}'.