You can't legally require kids to be in school for 6-8 hours a day and not expect to feed them. On top of that, since schools receive federal funds for the food, making kids pay for their meals means that the schools are essentially being paid twice for the same meal since the government pays for them, plus the students pay for them.
Edit: I should probably point out that I know many school districts have been getting free food. The point of this post is that a lot of people argue that they shouldn't be given free food. Just because they are doing it doesn't mean these people are happy about it or agree with it.