I don't know what system exists for deciding if a level is "hard" or not, but it's clearly broken. I've been stuck on "easy" levels for 20 attempts, and I've cleared "hard" levels on the first try. Both of these are issues.

Instead, I propose that the "easy" / "hard" distinction should be removed. Make all levels initially worth the same. Instead, add, say, 25 gold to the reward for clearing the level after every 5 attempts. Similarly, give the player an extra 2 turns / 10 seconds to complete the level after every 5 attempts. (These numbers seem reasonable to me, but could be subject to tweaking.)

This way, there is no trying to guess beforehand how easy/hard a level will be, and the player gets a better reward for struggling to overcome a difficult level. Also, it helps players not get stuck on levels by effectively decreasing the difficulty the longer the player is stuck. I think this would significantly reduce the frustration of "impossible" levels, because the player knows that the game is trying to help them get past it.

The obvious complaint is that players will "duff" (repeatedly fail, intentionally) a level early on in order to get a bigger reward. Well... only if they're idiots. Five lives cost 900 gold. "Duffing" will get you an extra 25 gold... at the cost of five lives. Thus, such a player would lose up to 875 gold. The increased reward is only really useful in the psychological sense (although that's important). Even with the proposed change, it is still much more effective to clear levels in as few attempts as possible.