Why does SignalR convert the first letters of Dictionary keys to lower case when it serializes the dictionary and sends it to clients?

Why does this happen?

"We use camelCase for names in JSON as it fits JavaScript patterns better."
— aspnet/SignalR#1415 (comment)

Is there any way to prevent it?

... is there any way to switch this conversion off in SignalR serializer?

Yes.

services
    .AddSignalR()
    .AddJsonProtocol(options =>
    {
        options.PayloadSerializerSettings.ContractResolver = new DefaultContractResolver();
    });

services.AddSignalR().AddJsonProtocol(options =>
{
   options.PayloadSerializerOptions.PropertyNamingPolicy = null;
});