How about this?
fit [min1:max2] f(x) "data" u 1:($1 <= max1 || $1 >= min2 ? $2 : 1/0) via a,b,c,...
That is, make use of the [:]
for the outer range.
I'm not sure it's much nicer but it is a little bit shorter.
Alternatively, you could use set table
in the following way:
set table 'newdata'
p [0:x_max] 'data'
p [x_min:L] 'data'
unset table
fit f(x) 'newdata' via a,b,c,...
Basically this writes a new file containing only the data between the two ranges. Arguably nicer, definitely not shorter!