UPDATE:
if you change the script like this:
import bpy
# two sample functions
def calcActivating(object):
objectName = object.rna_type.id_data.name
location1 = bpy.context.scene.objects[objectName].location
location2 = bpy.context.scene.objects["Empty"].location
print("distance is", (location2 - location1).length)
return (location2 - location1).length > 5
# Add functions defined in this script into the drivers namespace.
bpy.app.driver_namespace["calcActivating"] = calcActivating
And if you add an Empty with the name "Empty" (or adapt the script) it will react (change the animated property) depending on the distance.
possible result:

if you run this script:
import bpy
# two sample functions
def calcActivating(object):
objectName = object.rna_type.id_data.name
location1 = bpy.context.scene.objects[objectName].location
return location1.z - (bpy.context.scene.frame_current / 30) > 0
# Add functions defined in this script into the drivers namespace.
bpy.app.driver_namespace["calcActivating"] = calcActivating
and then give to one fractured cell for "animated" property ....

this driver:

then select all cells, shift select your cell with the driver at last, press CTRL-L -> animation data.
then you can get this:

of course you can change the "30" to any other value to change the effect:

Note: I just took the location.z value as "timing" function. So your location.z values of all fractured cells should be > 0 in the beginning of the animation. Of course you can take also a distance to another object or whatever function you want to calculate the timing.