The problem is the image has no anti-aliasing. Rotating 10° is moving pixels to new positions in a rectangular grid. Never going to be exactly the same order.
With a straight rotate without anti-aliasing set interpolation to none.
No real easy solution, trying a few things & jumping through hoops -
Selection -> selection to path -> rotate path -> path to selection -> fill selection -> threshold to remove antialiasing. Gives a slightly better result, but is it worth the effort.
Edit:
A bit more dabbling, you might get it a little better, if you slightly blur the image first.
Then rotate with regular interpolation cubic or no-halo
Then remove the anti-aliasing with threshold.
With a straight rotate without anti-aliasing set interpolation to none.
No real easy solution, trying a few things & jumping through hoops -
Selection -> selection to path -> rotate path -> path to selection -> fill selection -> threshold to remove antialiasing. Gives a slightly better result, but is it worth the effort.
Edit:
A bit more dabbling, you might get it a little better, if you slightly blur the image first.
Then rotate with regular interpolation cubic or no-halo
Then remove the anti-aliasing with threshold.