I donated some tins today at Tesco, but was thinking looking in the trolley that it looked an unappetising and generally unappealing array of stuff, largely due to the fact you can't of course donate items that would make a meal such as meat or veg or bread - baked beans without toast can't be too pleasant.
Also, if someone is lacking heat (freezing here just now!) soap, any number of things they might need, food might miss the point. In other words, feeding themselves might be less of a priority than being warm, or putting petrol in the car (many people need cars to work before people chime in with 'sell the car then') - wouldn't it be better if people could go to the CAB, doctors and get a referral not for food but for a smallish sum of cash?
Surely far nicer to spend £1.50 on a loaf of bread and tin of beans than to have just the tin of beans given to you?