Concorrência, travamento e travas podem desempenhar um papel. Eu suponho que o servidor de produção está fazendo algo diferente de esperar por esta consulta em particular?
A política de memória está definida como automática? Talvez o servidor de produção tenha alocado seu pool SGA de maneira diferente.
É também uma questão de quais dados estão realmente no pool compartilhado e no cache de buffer. O servidor de teste pode ter mais dados relevantes no buffer, não sendo descartado por outras consultas de produção.
Depois, há configuração de hardware. Algo simples como o cache de write back pode fazer uma grande diferença.
Divertido como é, não vamos desperdiçar todo o nosso tempo com palpites. Rastreie a consulta com intervalos completos e veja o que realmente está acontecendo:)