To my knowledge, soup kitchens never turn visitors away. My inner economist knows that there is clearly an incentive for people to go there for a free meal, but obviously only those who think the benefit outweighs the cost would go. So the real question is how can our society police charitable places like soup kitchens without actually having to use resources to police them? The answer is simple: inefficiency.
If you want to make sure that only those who really need it will attend soup kitchens then making the lines painfully long and serving low quality food are the answers. Only people with an incredibly low value of their time are willing to deal with horribly inefficient systems. Furthermore, if you make the food low quality enough then only people with an outside option of eating garbage will have an incentive to eat at the soup kitchen.
As any economist knows, giving people money is the best way to make them better off, but that’s not really our intention when it comes to these types of social problems. We aren’t necessarily interested in allowing people to maximize their personal utility. Instead, we’re selfishly interested in solving social problems through the beauties of inefficiency.