What is the difference between a rigid body object and a dynamic object?
It seems that your assumption is right Rigid Bodies add angular physics (angular velocity) to the behaviour of Dynamic objects. 

Which makes a rigid body roll over when it collides with another object, while a dynamic object would just stop to move.

From Python Wiki: Physics Type


  
  NO_COLLISION No Collision, Disable collision for this object.
  STATIC Static, Stationary object.
  DYNAMIC Dynamic, Linear physics.
  RIGID_BODY Rigid Body, Linear and angular physics.
  SOFT_BODY Soft Body, Soft body.
  OCCLUDE Occlude, Occluder for optimizing scene rendering.
  SENSOR Sensor, Collision Sensor, detects static and dynamic objects but not the other collision sensor objects.
  NAVMESH Navigation Mesh, Navigation mesh.
  CHARACTER Character, Simple kinematic physics appropriate for game characters.