I assume from the context that x is supposed to be integer-valued. If so, your workaround is fine. However, for non-integer values of x, the two approaches give different results:

data check;
input x @@;
if x in (1:10) then InResult="match"; else InResult="NOT";
datalines;
1 1.5 5 7.5 10 11
;
run;
proc print; run;

To robustly mimic the IN operator with the "less than" code, you should check that x is an integer as part of the IF condition:

if (int(x)=x) & (less-than-comparison-code) then...