The primary one is that the UserControl is deployed to the SharePoint
environment as source code, not compiled MSIL. The site has to Compile
the code to MSIL before it can compile it to assembly. This causes a
performance issue that can slow down the rendering of the control.
Second, since the control is rendered as a control inside another
control it makes it more difficult to surface the properties of the user
controls constituent controls for use in the webpart.
Third, it makes it more difficult to take advantage of the features of
the webpart object model like easy personalization of properties, easy
connections between webparts, data catching, etc.