How so? It only specializes in finding files and printing information on that.
That's 2 things already.
It is called "find" because it should find files. The UNIX principle would be to leave the "printing" to another tool. The find part overlaps with several other tools. The "printing" part is an entire printing language - private to the find tool and not in common with any other tool.
You write that "it's just the C printf". No it is not. C's printf does not know anything about owners, file sizes, rwx permissions, block sized. C's printf understands how to format strings and numbers passed to it as parameters. C's printf does not understand %u. C's printf does not go out and obtain information by itself. It is merely the name and excessive use of the % character that is common.
But even if you want us to ignore it, printf *also* starts and executes new processes. Cookbooks frequently use that capability. The find command can even prompt the user for ok to continue.
That's 3 (to be generous).
The date/time formatting is another area where find excels. But why does a file finding utility have to know about formatting dates and times?
Then there's the expression language. One can argue if it is done well, but a very, very large part of find is dedicated to this expression language and optimizations/tweaks for the evaluation. I'm not referring to the abundance of tests available. I am referring to the parenthesis and logical operators. Find has it's own format for these, incompatible with other tools that also does boolean expressions.
Then there are strange options such as -quit
The find command mixes at least 5 independent "things". Not one thing. There is no reason for this other than the limitations of the constant text formatting and parsing, and the limited bandwidth and expressiveness of a line oriented text format. Many of these "things" are overlapping with functionality of the shell itself (like the "tests") and with other tools. "ls" also excels at printing - only it's a different way to specify the format, and the format is married to the tool.
I am sorry if this sounds like I think find is a bad tool. It is not. It is actually an awesome tool. But it is undeniably complex. And the skills you need to master it does not help you at all when you continue to ls, ps, du or other popular tools.
While PS is a jack of all trades, right?
It has been pointed out to you, that PowerShell has been able to take a responsibility such as finding/locating items and separate it from responsibilities such as managing processes, formatting output, performing date/time arithmetic and interpreting propositions. Those other responsibilities has been generalized and composes with all other responsibilities.
Thus, PS tools tend to be smaller and have (far) fewer options. And yes, then you tend to use more commands on a pipeline, because you pass the object on to the to the tool that excels at it's (single) task.
Consider these commands:
Get-ChildItem | Where Length -gt 2MB | Format-Table Name,Length
Get-ChildItem | Where Length -gt 2MB | Format-Wide Name -Col 8
Get-ChildItem | Where Length -gt 2MB | Format-List FullName,Length,Attributes
Get-ChildItem | Where Length -gt 2MB | ConvertTo-Html
Get-ChildItem | Where Length -gt 2MB | ConvertTo-Json
Get-ChildItem | Where Length -gt 2MB | ConvertTo-Csv
Get-ChildItem | Where Length -gt 2MB | Select FullName,Length,Attributes,LastWriteTime | Out-GridView
Notice how filtering and formatting/printing is left to generalized cmdlets which has the filtering/formatting as their single responsibility.