Nem sempre é desabilitado por padrão (depende da versão e do distribuidor), mas há uma boa razão para isso: nem sempre é melhor para o desempenho habilitar o cache de consulta e, em tamanhos de cache maiores, pode ser prejudicial o desempenho como a limpeza do cache (empurrando dados menos usados para fora da memória para abrir caminho para novas entradas) leva mais tempo. Quando a invalidação e a remoção demoram mais tempo do que a consulta demora para ser executada, você tem sérios problemas.
Não é uma bala de prata para problemas de desempenho também. De aqui :
Query cache is great for certain applications, typically simple applications deployed on limited scale or applications dealing with small data sets.
A razão mais óbvia para a desativação do cache de consultas por padrão é o distribuidor que está defletindo as possíveis oscilações para padronizar uma configuração que pode causar problemas de desempenho dependentes do aplicativo.
Aqui está uma boa cartilha no Cache de consulta do MySQL