Isso foi respondido em sua página do github :
Since you're using double quotes, you're only escaping the dollar sign from the shell. By the time ag sees it, it is an unescaped dollar sign and therefore interpreted as end of line. Try single quotes or proper escaping:
$ ag '\$timeout'
$ ag "\\$timeout"
The reason grep is not affected, is because it uses basic regular expressions by default. With -E it behaves the same.