It's all to do with scale. If you use MAKE OBJECT CUBE 1,1 it will plonk a cube with each side measuring 1 3D unit. DBPro defaults to positioning camera so it is pointing at any new objects automatically and so the object fills the screen. So an object of size 1*1*1 unit only has to move a couple of units left or right and its out of the camera's vision. If however you stick AUTOCAM OFF at top of program and then position camera manually it will make things clearer. You can of course move objects by fractions like 0.01 and it will move nice and slowly.
Here's some nice and easy code to move a block around a matrix.
sync on : sync rate 60 : autocam off
size=100
make matrix 1,1000,1000,20,20
make object cube 1,size
position object 1,500,size/2,500
position camera 500,200,-400
do
x#=object position x(1)
z#=object position z(1)
if leftkey() then dec x#,5
if rightkey() then inc x#,5
if downkey() then dec z#,5
if upkey() then inc z#,5
if x# < (size/2) then x#=size/2
if x# > (1000-(size/2)) then x#=1000-(size/2)
if z# < (size/2) then z#=size/2
if z# > (1000-(size/2)) then z#=1000-(size/2)
position object 1,x#,size/2,z#
set cursor 0,0
print "Object X = ";x#
print "Object Z = ";z#
sync
loop
Boo!