Food is distributed thinking about profit, so there is more food in places where people can afford to pay more for it. Places where people can't afford higher prices get less food, sometimes nothing.
The majority of the world is governed by free trade, and this is the consequence of it. If most people in your country can't pay as much as the people in another one, you will be getting less distribution of food.
It is not only about food, is about every product you can think of. Everything is being sold around the world. There is dog and cat meat in countries where there is a market for it, none in countries where no one eat dogs or cats, just to give an example.
It is all about who can pay for what they need.
There is more than enough food grown to feed everyone. The vegetarian argument that raising meat is the cause of starvation because there is less food for people is absurd. The problem is economics. In many parts of the world, people are so poor, it just takes one drought for hunger to result.
The main reason for world hunger and poverty is over-population, simply put. A distribution of food adapted to the needs of poorer "third world" countries would only lead to a brief period of easing the tension, but change nothing on long-term. The growth rate of human population is highest in the world's poorest countries and as long as that continues, no possible redistribution can ever end world hunger.
So in conclusion: Neither food distribution nor food shortage is the main cause of world hunger. Deciding between those two however, it still comes down to food shortage, since if the amount of accessible food were indefinitely large, over-population would never lead to world hunger; but if it was not (and it certainly isn't), sooner or later there'd be too much People to feed.