Porque quando você usa valores FIXED com AUTO-PARAMETERIZATION desativado, o plano de consulta sabe EXATAMENTE para qual valor ele precisa executar a consulta. Assim, o plano está sintonizado ESPECIFICAMENTE para esses valores.
Porém quando você utiliza variáveis, o plano que será colocado no Query Cache é aquele que contém as variáveis parametrizadas - que podem ser substituídas por qualquer variável e irão reutilizar o mesmo plano. Portanto, esses planos terão que ser mais robustos e genéricos para lidar com o "melhor caso médio".
No SQL Server 2008, você pode definir se os parâmetros simples são ou não parametrizados automaticamente para obter consistentemente o plano de "melhor caso médio" - com todas as suas vantagens e desvantagens.
Ref.:
EDITAR - no desempenho
Quanto ao desempenho, o otimizador pode errar - neste caso, ele analisou as estatísticas
for the exact values
e senti que o índice não é útil (pode ser um problema de ponto de inflexão), então o plano é para varredura em cluster. É uma bela arte forçar um plano de consulta - mas claramente usar um índice é 50% mais rápido para - hardware específico
- distribuição de dados de ponto específico no tempo
- valores específicos fornecidos
A menos que eu tivesse uma razão muito, muito boa, eu não jogaria o Otimizador de Consulta (por exemplo, usando dicas de índice), a menos que eu tenha muitos dados para provar que ele invariavelmente o tornará mais rápido.