Its because this is a supply and demand economy, there will always be some difference in price across exchanges.
This isn't the answer. The OP is not talking about difference in price between exchanges.
For example on localbitcoins.com lets say 1 BTC is valued at £8500. If selling 1 BTC you can get £8550 (best price) and to buy 1 BTC is £8900 (at the same time). So there is £350 difference in buying/selling price and buy price is £400 above actual BTC value.
The difference you're seeing is called "the spread" and it's the amount of price difference that the exchange gets to keep, as income, for making a market in the investment. In this example it's Bitcoin, but the spread exists in every investment market (including gambling!)
So, long story short: This is normal.
Now you can try to find an exchange that offers a very narrow (small) spread. Although it may not always be consistent. Local Bitcoins probably has the worst prices because the market isn't very efficient. Just my opinion.