Quando o PowerShell é alimentado com uma linha (ou bloco) de código - ele avalia esse bloco (ou linha) como um todo
Nesse caso, sua primeira linha é: If ($error -ne $null)
O PowerShell sabe como interperatar a linha, mas sua sintaxe inválida porque o PowerShell não tem um bloco "o que fazer" no caso de os critérios serem atendidos.
SevocêalimentaroPowerShellcomoblococomoumtodo,elereconheceráobloco"o que fazer" e saberá aonde precisa ir em seguida:
Você consegue desenvolver mais sobre quais sistemas e plataformas você está achando que aceitam as linhas únicas? Eu acabei de testar isso no Win10 (PowerShell 5), 2012R2 (Powershell 4 e 5), Windows 7 (PowerShell 4 e 5) e todos eles se comportam exatamente da mesma forma.