There is no inherit reason why offline rendering takes longer than real-time rendering.
It is just that when you render offline, the rendering process is usually much less performance-critical, so you have the option to use very expensive rendering techniques which would be too slow for real-time rendering. When you are free from the constraint that each frame must render in less than 20ms, you can use a lot more complex geometries with a lot more expensive rendering techniques.
Which techniques exactly are used for each scenario differs. Global illumination, for example, is often too slow for real-time rendering, but not always. When the geometry of the scene is simple enough, it can be pulled off in real-time. And while offline-rendering can use global illumination, it doesn't have to.
There are countless other rendering techniques which are more or less performant and give more or less beautiful results depending on the exact scene geometry. Depending on the circumstances, almost any rendering technique can be used both for real-time and offline rendering.
Raytracing, for example, is usually considered too slow for real-time rendering. But when you have a scene which only consists of perfect spheres, any polygon-based renderer would cry in despair while a raytracing engine can do this in real-time.