Because XROTATE OBJECT will set the exact x angle of the object, whilst TURN OBJECT will add to the current angle of the object.
Also, if you want to achieve the same result as with turn object, you would have to use YROTATE OBJECT instead
To do it with the rotation commands you can use the OBJECT ANGLE X, Y and Z commands like so:
do
yrotate object 1, wrapvalue(object angle y(1) + 1.0)
loop
WRAPVALUE will constrain the value to the range 0..360 and is thus needed when handling angles; assume that your equation will give the resul 362 - wrapvalue will then wrap it around to 2 and you're good to go.
-> Oh, come on...