.Net имеет специальный внутренний тип для ненулевого массива.
Язык C # не имеет синтаксиса для этого типа, поэтому вы не можете приводить к этому типу.
Но 2d немассив с нуля имеет нормальный тип массива
Интересно, почему только 1d массив имеет специальный тип?
var array1 = (int[]) Array.CreateInstance( typeof( int ), new[] { 6 }, new[] { -1 } ); // System.InvalidCastException : Unable to cast object of type 'System.Int32[*]' to type 'System.Int32[]'
var array2 = (int[,]) Array.CreateInstance( typeof( int ), new[] { 6, 6 }, new[] { -1, -1 } ); // it works