Moving Object Along an Axis

Hello Everyone!
I require to move object with the mouse movement along one of the three axes just like standard grab + axis (G + Y for example).

So I tried calling region_2d_to_location_3d and using only the single axis value from the returned location.
But the result is not the same as in case of grab.

As you can see in grab the object moves precisely with the mouse pointer, whereas in my case there is some difference between mouse location and object location.
What do I need to do to keep the object close to the mouse during the movement? Thank you!