Respostas:
Isso foi respondido na página do github :
Como você está usando aspas duplas, está escapando apenas do cifrão do shell. Quando a ag vê, é um cifrão sem escape e, portanto, é interpretado como o fim da linha. Tente aspas simples ou escape adequado:
$ ag '\$timeout'
$ ag "\\\$timeout"
O motivo pelo qual o grep não é afetado é porque ele usa expressões regulares básicas por padrão. Com -E, ele se comporta da mesma maneira.