It depends how you define 'bad'. Languages evolve, and as Janus Bahs Jacquet mentioned in comments "Pop! Says the weasel" doesn't have the right ring to it.
Where you are talking about someone/something expressing a noise (speech, sound, etc), then 'goes' has a similar understood meaning to says (perhaps not a fomal OED definition.
It also depends on the sentence. 'James goes to the shops' is obviously correct vs 'James says to the shops'. So you cannot apply a general rule that 'goes' is a bad/incorrect word to use it.
If bad referes to formality, then using 'goes' is certinaly not correct in the formal sense of the English language.
However, in the example you gave, regardless of which you use, the meaning and intent of the statement is the same. As such it could be considered interchangeable dependant on the formality you are trying to convey or your familiarity with the other party(s) in the conversation.