Firstly a quicker way to move an object forward 1 pixel is to use the new 'Move at angle' action: move 1 pixel at .angle will do the trick.
Secondly, the distance between the two objects is unlikely to ever be identical. Because you move in units of 1 pixel, the closest it might ever get is 100.5 and 100.7, for example. Distance() returns a floating point value which, due to rounding errors and all that, will very rarely satisfy equality.
Change it to "Greater or equal" and it works (but still kinda weirdly). Still, I've already implemented a 'LinearAim' expression in the next build which does the perfect aim maths for you, so you can do it with a non-iterative approach and without nuts and bolts maths