The issue is described as follows.
# cat test
hello
fedora
# cat test | grep h*o
hello
# cat test | grep 'h*o'
hello
fedora
# cat test | grep "h*o"
hello
fedora
grep h*o works as expected, but WHY do grep 'h*o' and grep "h*o" get fedora which contains no letter h?