The reason "for", generally, is grounded in a largely depression-era concern that you may not have enough nutrition/calories in the future. Literally, you need to eat it or you might starve. That was a concern in the 30s, and people raised then often took that to heart and kept it in the 50s and 60s when they were having kids.
That said, there is an additional issue worth addressing. Kids often prefer not to eat dinner, because:
- They want to play
- They want to have dessert
- They don't want to try new things
All of those things are important, and need to be addressed as separate issues (which we have many questions about). "You must finish your whole meal" isn't likely the right answer, though; see the other answers for some links to studies specifically covering why not.
We have two well-built children (neither fat nor slender, and height-wise in the 80-90th percentile for their age). We mostly don't worry about how much they eat, unless there is a dessert; in that case we enforce minimums, but fairly low minimums - on the principle (which we tell them) that if they're not hungry at all, they shouldn't have the dessert either.
It's not optimal, but we don't want them skipping all of the nutritious food. It almost never needs to be done, though, because we a) give them food that tastes good, and b) have worked to teach them why they eat dinner. We also require them to be at the dinner table for the duration of the meal, regardless of how much they eat, which sometimes can be a struggle, but works out okay for us.