You will find that the underscore is required for a lot file names, not just models, as using a hypen in a variable name is invalid in Python. Modules are the same way. You can't do this:
import my-module The Python syntax is invalid. The same is true for models. I believe it also applies to controllers and views.

