The official place to exchange currencies is CADECA, this entity purchases and sell certain currencies according to Cuban Central Bank Rates. These rates are updated daily.
You can find CADECAs in the airport, and in major cities. Exchange rates should be the same country wide.
Note that you will be exchanging your GBP for CUC and not for Cuban Peso,
Also note US Dollars used to have a penalty on top of the change, that you can skip by changing to other currencies first as described here, but with GBP you will not get the penalty.
Almost ALL of the services you will purchase as a tourist are conducted in CUC, so yes, you need CUC to do stuffs. Some private places like restaurants or rent houses do accept foreign currencies, because they can exchange them later in CADECA or in the independent marketplace which have better rates. I would not recommend you as a tourist to participate in such a marketplace, (although the exchange rate is better than the official CADECA, for reference see Revolico: the Cuban’s craiglist-like website for exchange rates samples).
I would recommend not to exchange all your cash at once, and go for an official CADECA in the airport and exchange some to pay for your taxi and get to your destination, $200 – $400, or more if you need to pay for your booking upon arrival. If you’re going to a rent house maybe you can pay without make the change (but keep the exchange rate in mind if you do so). When you need more cash go and exchange more again.
I’ve only ever done all-inclusive in Cuba, where the best way to exchange money is at the resort – more because it’s the only reasonably simple way to do it than because you get the best rates. Cuba likes to keep control of the exchange process. I doubt that exchanging money at the airport is substantially worse than exchanging it at a hotel.
Cubans really like foreign currency, and I would expect that you could find a taxi willing to take GBP, though I couldn’t answer for the exchange rate.
Credit:stackoverflow.com‘