The reason is here:
https://github.com/JamesNK/Newtonsoft.Json/blob/96df2ab9c15334f5bf2bf530a6bc1d9cb33f0c77/Src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs#L917
So it first gets converted into a list and then it gets converted to an array.