It might be because the timer is equal to 2 for a very brief time, and the loop might be missing it. Try setting it to "if timer > 1.99".
Offline
[blocks]
<when green flag clicked>
<reset timer>
<repeat until><( <timer> <=> 2 )>
<change x by( 1 ) >
[/blocks]
Offline