There are probably a lot of smaller reasons that are complicated (such as the modern complexity of royalty issues), but I would think three of the major reasons are:
1) Modern audiences are more sophisticated in terms of presentation (though not necessarily content) and would have a harder time with in than in times past.
2) Actors are less likely to allow it after that first actor in a movie musical sang their own part. Now, not to do so looks like a deficiency.
3) The advent of technologies like Auto-Tune have helped make actor's singing voices "passable." I say passable, because I agree that it's still not good enough. Mediocre singing worked for Renee Zellweger in 'Chicago' because it fit the character, but I really don't like their vocal limitations in 'Nine.'
If the audience could do better, they'd be up here on stage and I'd be out there watching them. - Ethel Merman