Funding is finite. Someone who doesn't need a benefit and receives it can be taking that benefit away from someone else. If you turn up at a food bank when you don't need to you're taking food out of someone else's mouth.
It costs more to determine who should receive the benefit than to simply provide it for everyone. Who gives a shit if a rich kid gets a free school lunch? They have to be at school. Feeding everyone should be a cost of the education system, the same way keeping the lights on and the temperature moderate is. Or should kids start having to pay for the light above their desk? For each drink at the water fountain? Maybe we can use cameras and some AI to tally up the expected utilities bill for each student and send that to the parents.
Rich kids can bring their own lights. /s
I've known people who care more about preventing undeserving people from receiving help even if the cost of enforcement is greater than the cost of abuse.