Title says it all. Wikipedia says:
Design PowerShell's developers based the core grammar of the tool on that of POSIX 1003.2.
Windows PowerShell can execute four kinds of named commands:
cmdlets (.NET Framework programs designed to interact with PowerShell) PowerShell scripts (files suffixed by .ps1) PowerShell functions standalone executable programs If a command is a standalone executable program, PowerShell launches it in a separate process; if it is a cmdlet, it executes in the PowerShell process. PowerShell provides an interactive command-line interface, wherein the commands can be entered and their output displayed. The user interface, based on the Win32 console, offers customizable tab completion. PowerShell enables the creation of aliases for cmdlets, which PowerShell textually translates into invocations of the original commands. PowerShell supports both named and positional parameters for commands. In executing a cmdlet, the job of binding the argument value to the parameter is done by PowerShell itself, but for external executables, arguments are parsed by the external executable independently of PowerShell interpretation.
The PowerShell Extended Type System (ETS) is based on the .NET type system, but with extended semantics (for example, propertySets and third-party extensibility). For example, it enables the creation of different views of objects by exposing only a subset of the data fields, properties, and methods, as well as specifying custom formatting and sorting behavior. These views are mapped to the original object using XML-based configuration files.
which indicates that
.NET is required and that Linux
dotnet is insufficient to run cmdlets.