bash is, in the end, just another command. In the first line, the wc command is giving you an error, and in the second, it's the shell.
The reason for the difference is that in the first case bash launches wc with the filename passed to it as an argument. wc then looks for the filename that it was given, can't find it, and complains.
In the second case, you're using a redirection, which is a function of the shell. Now it's bash that's looking for the file, so that it can open it and send the contents into wc, and complaining when it can't be found.