With RotateEntity() you must rotate it an absolute amount ... it doesn't keep track of how much it's been rotated. TurnEntity() will turn the entity by a certain amount from it's current pitch, yaw, and roll.
RotateEntity(Ball, 90, 0, 0) ... will rotate the ball to the same angle every time.
TurnEntity(Ball, 90, 0, 0) will turn the entity 90 degrees from it's current pitch every time you call it.
I suggest using RotateEntity() and keep track of the current pitch, yaw, and roll yourself (can't use Blitz's EntityPitch() EntityYaw() and EntityRoll() because they'll always return a value between -180 and 180.
So ...
If KeyDown(200)
ballPitch# = ballPitch# + .1
EndIf
If KeyDown(208)
ballPitch# = ballPitch# - .1
EndIf
RotateEntity(ball, ballPitch#, 0, 0)