Why the main theme isn't applied in the preview?
There are lots of reasons why the main theme isn't applied. I think this comment by merlinofchaos sums up some of the larger hurdles well:

Right now, in Drupal, we store temporary data in a cache by caching the generated form. In order to preview, we have to process that form and reassemble data. This is fine when you click preview, but in a system like this, you're actually visiting a different URL from the form.
Logically, we could put the form build id in the URL and load the form and process it, but there are several weaknesses with that:

It is wasteful (processing a form that was not submitted)
Form build IDs are sha generated strings. There is no way to reproduce it if you don't have it. This means you can't do content locking.
It continues the trend on Drupal of the form owning the data when the form typically should only be a representation of the data.


Read More »
Lot's of contrib modules have attempted to address these issues:

Site Preview System
Page Preview

That said, &quot;Allow to preview content in an actual live environment&quot; recently made it into Drupal 8 Core
But don't get too excited. &quot;Allow content creators to preview exactly how content will appear on the site after it's saved&quot; is still very much a work in progress. And recent comments indicate it will be a Drupal 9, not 8 issue.