It's been years since I was an American Red Cross (local) disaster services volunteer, but at the time I believe the philosophy was also providing funds rather than materials because it helped local economies recover.
Also, if many people donate materials, it quickly turns into a logistic clusterfuck, where the charity suddenly has to worry about (and spend money on) shipping tons of stuff across the world, which is significantly more expensive than just buying it locally.
Expensive and wasteful, as people all donate the same tin of beans and no spoon to eat it with, so to speak. But there is also a point to this sort of donation - gifting in kind usually ensures it won't be pocketed along the way. It might get wasted (food expires, boxes break etc), but rarely exploited for profit - or so the common wisdom goes.
Unfortunately, something like that can still be used for evil in many ways. Say your container full of cans gets delivered to Port Disaster and stored in customs; the local docks boss (be it a warlord or local leader) gets wind of it and refuses to release it unless his palms are greased. The org will be forced to pay, otherwise all effort will be for nought, food will rot etc. Charitable gifts will then help fostering the blackmail and corruption economies that wars and disasters inevitably create, rather than relieving the honest one. But then again, so would random "cash rain".
There is no magic bullet, all solutions have their downside. Operating in crisis scenarios is a constant moral maze.