But when he cancelled the bonus, his balance went to 0:
Yes, but that shouldn't have happened no matter what their pop-up window displays. The casino can't just take your real money just because you stopped wagering bonus funds. His bonus going to 0 is Duckdice's wrong setup because the player didn't lose the money by betting. If I understood correctly, they admitted this mistake and fixed it.
What if the user would have lost instead of won? He wouldn't be allowed to keep his 2 BTC that way either.
If the player lost part or all of his funds, my view of this case would of course have been completely different. However, he won, he didn't lose.
I think Duckdice found a suitable compromise by refunding the 2 BTC. If we knew what the Bonus T&C were that the player agreed to at that time, it would be easier to comment on whether or not he had a right to claim any part of his 1 BTC winnings.