This is just my own understanding, but here it is: Let's first get on the same page about web frameworks. To me, a web framework is basically giving you everything you need to get started with a database-driven website or web application. Everything, that is, between the webserver software and the database software. And in many cases the framework itself includes a webserver. This is true of Dancer (which I'm not saying is a full framework) and Rails and most others, because the basics of a webserver are pretty simple.
So when I say "everything you need to get started," that's generally going to include each of the MVC layers. Some code that handles the Model, some code that handles the Controller, and some code that handles the View.
Of course, there are lots of ways to deal with a database, and most of them have nothing specific to do with web frameworks. In Perl, there's pure DBI, there's DBIx::Class, there's Rose::DB::Object, and I'm sure many others. There are also lots of ways to do templating. Template Toolkit, HTML::Template, and many others. There are also websites and web applications that are so simple that you don't even need those parts at all. For those reasons and others, there is an appetite for the "micro web framework."
As far as I can tell, there's only one real requirement for a micro web framework. And that is route handling. When certain types of requests come in, how do we handle those requests? Different HTTP methods, different URIs, different query parameters. How do we parse the arguments? How do we handle error conditions? File uploads. Session data. Etc. All of this is included in a full framework as well, as the Controller. And they also contain code for the Model and View. But the micro-framework does not. You might think of a micro framework as simply a controller framework.