First of all, I don't believe you. The code you gave may not possibly produce more than one line of output (because of break at line 15).
That said
-- line 11 means
(a) test "$line" -gt 100
(b) if (a) returns success (exit code 0), execute the command "$line" -lt 200
-- $line is a contents of the line you've just read, not a sequence number. Taking your word that "result is all of the lines", I suspect that your file consists of numbers, one per line, all of them less than 100 (this is the only scenario in which your script may run with no errors).
Of course the right way to achieve your goal is a sed script:
sed -n -e '100,200p'
If you insist on a pure bash with no external utilities, then
# read and ignore first 100 lines:
for ((i=0; i<100; i++)); do read line; done
# read and echo next 100 lines:
for ((i=0; i<100; i++)); do read line; echo $line; done
# That's it