Словарь не определен в той же сборке, что и SortedDictionary . Один находится в mscorlib, а другой в system.dll.
В этом и заключается проблема. Текущее поведение в PowerShell заключается в том, что при разрешении указанных общих параметров, если типы не являются полностью квалифицированными именами типов, предполагается, что они находятся в той же сборке, что и общий тип, который вы пытаетесь создать.
В данном случае это означает, что он ищет System.String в System.dll, а не в mscorlib, поэтому происходит сбой.
Решение состоит в том, чтобы указать полное имя сборки для общих типов параметров. Это очень некрасиво, но работает:
$bar = new-object "System.Collections.Generic.Dictionary``2[[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"