If there are files in the working directory when you execute the command, the shell will expand the *.sh argument to match the list of files. Most command don't want to see the glob patterns - the shell pre-expands such patterns and passes the pre-expanded list to the program. However, in the case of find, it evaluates the glob pattens itself, so you have to prevent the shell from doing it.
You do this either by prefixing the glob pattern special characters (* and ?) with \ backslash, or by quoting the argument. i.e. one of these
Code:
find . -name \*.sh -print
find . -name "*.sh" -print
find . -name '*.sh' -print
The fact that the pdf command worked for you suggest that you have no files matching *.pdf in the working directory when you executed the command.