Could anyone please tell me the difference? Is it just the fact that 'offer' is a British usage?
I'm not a teacher***
on offer British English for sale for a short time at a cheaper price than usual: Lean minced beef is on offer this week.
on sale especially American English available to be bought at a lower price than usual: These gloves were on sale for only $9.
for sale available to be bought: Excuse me, are these for sale?
buy something in a sale: I bought both pairs of shoes in a sale.
Sources: Longman Dictionary of Contemporary English, Longman Dictionary of Common Errors