The selector argument x_rotation seems to behave like y_rotation.
/execute as @a[x_rotation=0..90] run say x
/execute as @a[y_rotation=0..90] run say y
y_rotation detects x_rotation instead
x_rotation and y_rotation issue
Issues with y_rotation and x_rotation selector arguments
The x_rotation and y_rotation entity selectors use the same values
/teleport x_rotation and y_rotation being swapped