Write-Outputの-InputObjectパラメータにはValueFromRemainingArguments属性がついてるから
その場合はパラメータ名が明示されてないものはすべてInputObjectにバインドされるんよ

確認はしずらいけど以下で確認できる
(Get-Command Write-Output).ParameterSets[0].Parameters | where name -eq InputObject

まああんまりこの属性ついてるのはないからecho とかWrite-Hostあたりはこうなってるくらいの認識でいいよ
PowerShell7だとJoin-Pathもこの属性がついてる