The problem is PlayerHolder is a prefab, not an instance of the prefab in the scene. The prefab asset doesn't move, so GetDistance doesn't change!
This comes up a lot with Unity. In the next update I'll look into adding an error when actions should point to a scene object and not a prefab. Most actions should point to a scene object. FSMs on a prefab can also point to child objects of the prefab and these references should get properly remapped (by Unity) when the prefab is instantiated in the scene.
A quick way to see if a referenced GameObject is a prefab or scene object is to press the select icon next to the edit field (circle with dot). This opens the object browser and you can see if the GameObject is an Asset or Scene object. Clicking the edit field will also ping the asset in either the Project or Hierarchy windows, depending on if it's a prefab or a scene object.