I guess they work the same as how casinos earn their income. The house always wins. The chances for the users to win are always little. Maybe out of the 1000 who have placed their bets only a few could get to win something just to make sure that they spread the news of the site. The algorithms of the program e makes sure that there won't be many winners and they have calculated the odds for anyone to win at a quite low rate.
Then the good thing about being a betting site is that it can attract more users and when users lose their cash or cryptos, they won't feel that much pain as they would if they handed over their hard earnt cash. I tried a couple of times and it's not something I would do although I did not bet much. I just bet on a bit to see how much luck was.
Other than that, online betting sites especially on the blockchain gives a high reward and tempts those are greedy and want to win something out of what they have invested in. For gamblers, there is no such thing as the hope of winning it big but logically we know definitely it won't be easy to win these bets.
They earn through house edge.
It is basically a measure of advantage betting site have over player.
All betting sites have it, some have less, some have more. Our own magic-dice has house edge of 2%.
All betting companies earn from the losses of their users. Anytime a user loses, the betting site smiles and vice versa. Some betting sites also earn from adverts placed on such sites. Though the majority of their earnings come from their users failed bets