The time on site (or session duration) is the time people are staying on your website. It's calculated by taking into account the timestamp of the visits of your differents pages by your visitors. For example if a visitor load a page at 1pm and another one at 1:05pm, the time on site will be 5 minutes. Actually, the real number is more than this, but Google Analytics can't track how long you stayed on the last page, so the time on page for this last page will be 0.
Usually, the time on site depends of the size of your content: more content you have, more time it takes to read it and more your visitors stay on your website. It depends as well of your bounce rate: if it is low, people are interested by your website and should spend more time on it. The best way to increase it is to have good content, and a good netlinking between pages with "You could be interested" sections for example.
The goal of a content website is to provide the answer to a visitor, and then having him to click on an ad. The time to read a quality article of 1000+ words should be at least 5 minutes.
Visitors on ecommerce websites should visit many pages before buying a product. Usually they have to create an account as well. A session duration of more than 15 minutes is pretty good.
People looking for local shop are looking for what the shop is doing (so they will visit many page), or just a phone number or menu. Depending of the context, on time on site of 2 minutes could be OK, as one of 10 minutes...