Blender make driver use local bone axis
Bones local coordinates are coordinates in the bone rest pose space (initial location/rotation/scale before it moves in pose mode).
The difference between world and local coordinates is the parenting: world coordinates include parent chain transformation up to world.
Though, in local coordinates, moving along (say) X does not mean a movement along current X bone axis. This is still relative to its original rest position.
That's why your setting is not working.
You need to consider both X and Y (local or world won't directly matter in this case) in order to shift the arrayed meshes along the curve.
That can be this setting:

However, the turns are not good: both tracks follow the same speed even if we add the rotation around Z. We would prefer the track which is inside the curve to go slower than the other one.
... this can be handled by some driver functions (won't have time to explain it for now...).
The blend file contains the two versions (with and without speed differential when rotating).