Apparently google analytics data for average visit duration is deeply, deeply flawed. But there are cool hacks and fixes to get much better data.
In essence, the incorrect duration statistic stems from users who only view one page, then leave. Even if they spent 15 minutes on the page, they are counted as a bounced user with a visit duration of 0:00. To fix the issue, your website must be set up to track clicks of the back button and closures of the user’s browser.
The author of the tutorial for counting true visit duration saw their own site jump from 4 minutes up to 14 after applying the extra code.
I haven’t applied this fix yet to any of my sites yet – but it seems like a must.