A plugin is an app that extends the functionality of WordPress. Plugins are functions that do something to your website. Plugins are little bundles of code that add extra functionality to your website. They are extensions or apps that need to be installed. They usually serve an administrative purpose and are only visible in the admin section of the website.
For example, WordPress does not have a backup feature. But you can install a plugin that adds that functionality, allow you to automatically make backups of your website. You can see the plugin from your WordPress Dashboard, but it’s not visible to normal visitors on your website.
A widget is a plugin, or built-in app, that interfaces with the public on the site. In other words, it displays something that the public can see and/or click on. Widgets are drag-and-drop blocks of content or data that are visible to everyone on your website. When you want to add something to your sidebar or footer, you add a widget. See that search box and other stuff in the sidebar next to your post? Those are all widgets.
The short answer: A widget is a plugin that you can drag and drop in your sidebar. A plugin is a script that you download that improves the function of your blog in your front-end or back-end.