So... I faced a similar issue recently. I will try to explain, as good as I can, what's probably happening in your case.
Google analytics works with hits, every time a user interacts with a site, Analytics registers a new hit.
The metric average session duration takes the seconds of all sessions and divide them to the total number of sessions. The things we have to understand now is how analytics registers one individual session duration. Analytics marks one hit when the user enters to the site and marks the second hit when:
1. User makes a new event
2. User goes to another page
Example: User access the site at 10:00 and clics in an event you have previously set up at 10:05. Google Analytics underdtands you have been in the page for 5 minutes. The same happens when the user goes to other page.
This issue comes when you have a landing page with no events set up or with difficulties to get to other pages of your domain. In that case, no matter wheter the user stays for 20 or 30 minutes because analytics will register only 00:00:01 second.
I hope everything was well explained.