O motivo mais provável: o quicksort não é estável , ou seja, entradas iguais podem mudar sua posição relativa durante a classificação; entre outras coisas, isso significa que se você classificar uma matriz já classificada, ela pode não permanecer inalterada.
Como os tipos primitivos não têm identidade (não há como distinguir dois ints com o mesmo valor), isso não importa para eles. Mas, para tipos de referência, isso pode causar problemas para alguns aplicativos. Portanto, uma classificação de mesclagem estável é usada para eles.
OTOH, uma razão para não usar a classificação de mesclagem estável (garantida n * log (n)) para tipos primitivos pode ser que ela requer a criação de um clone da matriz. Para os tipos de referência, onde os objetos referidos geralmente ocupam muito mais memória do que o array de referências, isso geralmente não importa. Mas para tipos primitivos, clonar o array dobra o uso de memória.