Passing text means that every single one of the thousands and thousands of unix cli tools that accept stdio will work in your pipeline.
It also means every one of those thousands and thousands of Unix clip tools needs to have a parser to turn that text into some sort of structure to operate on.
Which allows them to determine exactly the best way to do that for their purposes. I just run the command and it magically works.
Up until someone changes the text output of the program and it all goes bad. Never mind the maintenance headaches that basically get solved by people moving their command lines into databases where typing happens.
It'll be a long time before the Powershell ecosystem has a fraction of tools that are compatible with it's .NET object pipeline.
That's more a function of age and developers than the typing itself.
It also means every one of those thousands and thousands of Unix clip tools needs to have a parser to turn that text into some sort of structure to operate on.