Ваша переменная $x содержит массив. Когда вы передаете массив в функцию, конвейер не передает экземпляр массива в функцию; он передает элементы массива в блок process функции, по одному за раз.
Get-Member на самом деле показывает вам элементы строки 'c' - последний элемент в массиве - а не члены самого массива. (Обратите внимание, что вывод на скриншоте начинается с TypeName: System.String .)
Если вы хотите увидеть элементы для самого $x (массива), передайте его в Get-Member с помощью параметра -InputObject вместо его передачи по трубопроводу.
$X='a','b','c'; gm -InputObject $x
Тогда вы увидите, что ваш $x имеет тип System.Object[] и не содержит метод Remove . (Вы не можете удалять элементы, потому что это изменило бы длину массива, а массивы в .NET имеют фиксированную длину.)