Widget could be a bit slower, as it actually is a wrapper for the web part, however in most cases this shouldn't be noticeable.
When choosing between those two I'd ask myself what is that you're trying to reach: those two could do exactly the same, but web part is something that developer places onto a page and configures it, meanwhile widget could be added/managed by content editor or even user.