It doesn't contain those literal characters. It contains masses of binary characters that are represented as control-a, control-@, and so forth. grep will (rightly) determine that this is a binary file with information not representable on a terminal, and just print yes/no information instead of matching lines.
That is why you need -a to force it into treating it as text.