Because the video isn't the same format as what the file extension says it is. (IOW, just naming a file something.mp4 doesn't make it an mp4, it has to actually be an mp4. If it's actually a wmv, and it's named mp4, the player will have trouble parsing the mp4 the player thinks it is.)
Or you can have an app that has a problem playing a certain type of video because it's corrupted.
We'd actually have to have your phone and the video in question to determine exactly what the problem is. Try playing it in a different player. (Make sure it's not a Flash Player video - unless you installed Flash Player in your phone, it can't play Flash videos.)