With a lot of focus towards customisation of software functionality and interface components, there are some software platforms that choose to go down the path of creating APIs and exposing some of the internal code to allow customers to extend the features and functions of their software.
This often creates an overlap or conflict in how the terms 'extensions', 'plug-ins', 'add-ons' and 'widgets' are used because some refer to the technical implementation details or the way users go about the customisation process, but they are still essentially the same type of interface components that is presented on the screen. Here is a previous answer from StackOverflow as well for reference in the browser context (https://stackoverflow.com/questions/33462500/exact-difference-between-add-ons-plugins-and-extensions).
The use of the word 'extension' seems to come from the concept of extensibility in software architecture and design, while the word 'plug-in' seems to be an adoption of the physical object. However, both terms seem to be used interchangeably depending on the actual context, which could be for browsers, software platforms, standalone apps, etc.
While for the developer it may make sense to distinguish and keep these terms separate, the need for a consistent language to be displayed on the interface (e.g. menu) and documentation is still there. So from a user's point of view, can these terms co-exist or will it just cause confusion?