The bar | has no special meaning in BRE (basic regular expressions). Use extended regular expressions (ERE) such as:
grep -E 'foo|bar' file
or
egrep 'foo|bar' file
In GNU grep, you can also force the spcial meaning of | by escaping it. E.g.,
grep 'foo\|bar' file