Its called the spread. Thats where the banks make their cash. Certain banks use this as a mechanism to control their currency exposure. If if they are holding too much foreign currency they may increase the spread substantially to deter people from exchanging and may make it very small to entice people to convert.
There is also the cost of handling physical currency, vs "virtual FX" currency. Infact, what most people dont realize is there is a completely separate desk in banks that trade "physical currency". They physically ship loads of currency from one place to another, and with that you have handling costs, security, shipping, counting costs etc. This is why exchange counter rates differ quite substantially to the spot rates you see on the tickers.