The argument is that they should adopt existing widely used tools not create their own walled garden which is an inferior copy in order to lock people into their system.
"Inferior copy"? You're delusional. PowerShell is better in almost every possible way. It's more discoverable, more consistent, easier to script with, easier to read, and doesn't require error-prone text parsing in its pipeline.
It's what you'd expect from 30 years of hindsight.
The spittle-flecking above is not great, but calling people delusional because they disagree with your choices about ultimately meaningless technical crap is a profoundly shitty thing that you should feel some measure of shame for doing.
And I don't agree with you, either. While I like the idea of PowerShell (one of my GSoC submissions like a decade ago was to implement consistent coretools interfaces in C# so that another GSoCer's Mono-based shell could consume them) I personally find trying to actually write PowerShell--either in a script or on the command line--to be pretty disappointing. bash/zsh's syntax on the command line isn't great, but it's short and it's something with few enough permutations that writing it by hand is achievable; the hit-or-miss set, or lack thereof, of shorthand for commandlets and flags in PowerShell makes writing it difficult. Remembering the very long names, the strange syntax of stuff like a one-liner loop--it's pretty gnarly. Discoverable? Relatively speaking, yes. But it's not writable, to me. The experience is frontloaded for novices at the expense For a novice going `rm -rf` is surely complex; for an experienced programmer, writing `rm -Recurse -Force` is just gonna always be bad. (Ditto the odd co-opting of `rm` anyway; `grep` sure doesn't act like `grep` in PowerShell, the short aliases exist just to confuse.)
In a script, and as a programming language rather than a shell language...much like any other shell language, I write it literally only when forced to and if it weren't for Microsoft privileging operations inside of it I can't see a situation where I'd write it over Ruby. Its variable scoping is odd and requires more cognitive power than variable scoping should (we fixed that in JavaScript!) and the oddly bash-ish comparison operators have no real place, for me, in writing code. (They're not good in bash, either, but PowerShell doesn't get that excuse--it's supposed to be better and isn't.)
On top of that, there's a pretty good argument, and one I tend to agree with, that consistency is better than marginal improvements (and PowerShell is a marginal improvement over the combination of bash and Ruby or bash and Python). There is an alternate future where WSL has the ability to do everything, without blinking, that PowerShell can without having to get neck-deep in the .NET commandlet universe, and it's a universe where my tooling is drastically and radically simplified because I don't have to have completely separate execution paths just for that one client who actually cares about Windows.
I don't find any of that "delusional", and I think you should fix your tone and apologize to the person you said that to.
A) Shorthand for commands in powershell are many and customizable
2) You realize you can tab complete commandlets, flags, switches, and named parameters in PowerShell right?
I actually agree that aliasing the old core-utils names to PS commandlets that are only kinda similar was a bad move though.
And unless OP literally meant that PowerShell was inferior when judged as a copy of unix shells and core-utils, they are being delusional[0]. I don't know why you feel that's some incredible insult.
This isn't a walled garden any more than zsh is! It's an alternative shell. If you wanted bash on windows, you could have and still can get it from various vendors. Microsoft simply distributes a linux compatibility layer as a whole.