Main reason behind this is that it is completely different culture and does not align with our expectation.
Let us not go into deep historical and philosophical aspect of this question (one could easily write an entire tractate), and let's cover the core point: due to low income most of indian people are ready to pay for movie only if they get most out of it for lowest price. And by "most out of it" I mean movies which mix multiple genres and even most contradictory ones (at least what western people would take as contradictory): glamour, melodrama, action movie, musical, detective, romance and et cetera.
This is what is called "masala" in India, meaning "mix of spices".
There is no cult of credibility of movie in India, in contrast to western culture, and because of it no one is annoyed by the fact, that policeman who is fighting with mafia, suddenly in a gap between action scenes, dances and sings sweet song about love to beautiful woman. And of course, accompanied with a large dance backup.
On the contrary - they like that protagonist can fight back, and sing, and conquer a woman's heart.
Also, for the same reason Indian movies usually last longer than western ones. Story, which would be told by western director could last no longer than hour and a half, Indian one can easily make it to two and half or even three hours! And again it's a "best offering for the same price" concept. Viewer gets most out of price he paid.
However, along with Indian classic movies there are more and more western-ish movies coming out, which do not mix many genres. But these shows mostly for "advanced" and intelligent townees.
It's worth mentioning that in USSR was the same fashion to put in songs and dancing into movies-for-masses. Reason is basically the same.