Dumb find question

All,
For some reason I can't figure out why I can't wildcard my find statement to check for anything with a wildcard after. I can before the -name but not after.

ie.

find . -name *test works

but find . -name test* gives me the error: find: paths must precede expression
Usage: find [-H] [-L] [-P] [path...] [expression]

Any reason?

Protect the wildcard from shell with single quotes and let find expand the wildcard not shell.

find . -name '*test'
find . -name 'test*'