grep -i 'a' é equivalente a grep '[Aa]' em uma localidade somente ASCII. Em uma localidade Unicode, as equivalências de caracteres e conversões podem ser complexas, portanto, grep pode ter que fazer um trabalho extra para determinar quais caracteres são equivalentes. A configuração de localidade relevante é LC_CTYPE , que determina como os bytes são interpretados como caracteres.
Na minha experiência, o GNU grep pode ser lento quando invocado em uma localidade UTF-8. Se você sabe que está procurando somente caracteres ASCII, invocá-lo em uma localidade somente ASCII pode ser mais rápido. Espero que
time LC_ALL=C grep -iq "thats" testfile
time LC_ALL=C egrep -q "[tT][hH][aA][tT][sS]" testfile
produziria horários indistinguíveis.
Dito isto, não consigo reproduzir sua descoberta com o GNU grep no Debian jessie (mas você não especificou seu arquivo de teste). Se eu definir uma localidade ASCII ( LC_ALL=C ), grep -i será mais rápido. Os efeitos dependem da natureza exata da string, por exemplo, uma string com caracteres repetidos reduz o desempenho ( que é como seria de esperar ).