Extensions enable third party developers to modify aspects of ExpressionEngine without hacking the backend scripts.
Extensions can do things like modify an entire Control Panel page, add/remove functionality, and modify the appearance of certain page elements. Extensions enable third party developers to modify aspects of ExpressionEngine without hacking the backend scripts. You can think of an Extension as a plugin. But unlike a plugin, Extensions are not used within your templates, they instead allow you to modify the core system itself.
Ref. http://ellislab.com/expressionengine/user-guide/development/extensions.html