Hi John,
Looking at the moveit source [1], dynamic axis aligned bounding boxes are being used. There is a pretty good explanation of axis aligned bounding boxes at [2]. I am not entirely sure what dynamic means in this context, but it suggests that the exact bounding boxes are recomputed when the robot's state or the environment changes. Collision checking between meshes without bounding boxes is expensive, so mesh points will only be used if a) two bounding boxes are intersecting or b) to compute the shortest distance between robot and environment if the user requires it.
Moveit uses discrete collision checking for motions (rather than continuous collision checking). This means that a motion is checked by subdividing it into N points, and individually checking each point. N is determined using the longest_valid_segment parameter in ompl_planning.yaml. Larger values for longest_valid_segment result in faster planning (because less collision checks are performed) but motions passing through obstacles might be incorrectly classified as being collision free.
[1]
https://github.com/ros-planning/moveit_core/blob/jade-devel/collision_detection_fcl/src/collision_world_fcl.cpp[2]
http://stackoverflow.com/questions/22512319/what-is-aabb-collision-detection