fn — это короткая ссылка на jQuery.prototype, потому можно писать:
jQuery.fn.plugin = function () {
    // Here is my plugin
    // this здесь ссылается на jquery-объект, от которого вызван метод
};
И данный плагин появится во всех уже созданных и тех, что создадутся сущностях. Добавляя свойства напрямую в объект мы реализуем статические свойства:
jQuery.plugin = function () {
    // Here is my plugin
};
Таким образом, наилучший шаблон для небольших плагинов:
new function (document, $, undefined) {
    
    var privateMethod = function () {
        // private method, used for plugin
    };
    
    $.fn.myPlugin = function () {
        
    };
    
    // и, если нужен метод, не привязанный к dom-элементам:
    $.myPlugin = function () {
        
    };
    
}(document, jQuery);
А в твоём примере просто изменён порядок $.fn.plugin и $.plugin