Collision detection with non-kinematic RigidBodies

Although the physical collision is visualized correctly, when I want to detect collision between two non-kinematic rigid bodies in a script, “onCollisionEnter” is called even when the two objects are close but not touching. However, onTriggerEnter is accurate in detecting collision between two kinematic rigid bodies. My question is why “onCollisionEnter” is not precise in the script, and is there a way to have the “onTriggerEnter” accuracy with non-kinematic rigid bodies?

Here is a small project that shows the difference between the two cases: GitHub - romina-a/UnityCollisionDetectionSample