If no one did this, wouldn't that just mean that the price discrepancy kept rising and rising?
Now introduce the middle. The portion of them paying with coupons is anywhere from 0% to 100%. The restaurant makes massive profits from them at 0%, and makes no profits from them (but covers all costs) at 100%. Let's say it starts near 0% because initially nobody knows about coupons and over time rises near 100% once the information has spread around. Profits decrease so something must be done to counter that. Shallower discounts (say, 25% off instead of 50% off) is a possibility, keeping the discrepancy tight, as you suggest. But increasing menu prices, while leaving the huge discrepancy, is also a possibility!
Either method will get the profits to the desired level. But only one method -- maintaining the large discrepancy -- sustains the goal of maximizing the number of poor people fed. Therefore, a restaurant with that goal will choose that method; a restaurant without that goal simply won't issue coupons. The discrepancy, if one exists, is therefore constant regardless of how many penny-wise pound-foolish people are in the middle.
It's weird, but it's actually an incredible way for the more well-off to subsidize the less well-off (at the risk of enticing some folks, who have the means but love a deal, to be penny-wise pound-foolish at everyone's expense including their own). At the end of the day, more people get fed at the price point they can deal with.