It's perfectly legal. As long as a trader avoids things like racial discrimination, he's entitled to charge what he likes, when he likes, how he likes and to whom he likes for his goods and services.
For example, a shopkeeper could charge one customer �1 for a loaf of bread. He can then charge the next customer �1000. He can then refuse to serve the next customer. When you walk in, he can offer to sell you a loaf for �1, but only on condition that you stand on your head, stark naked, while singing the Lithuanian national anthem backwards.
Exactly the same applies to hotel rooms. Some hotels might choose to charge far more on their websites, others might charge less. It's all perfectly legal, and long may it remain so.
Chris