They needed to revamp the plugin architecture in order to support multithreading. The current FF extension API relies on the fact that the browser UI and the Web content share the same OS thread.
Google Chrome was built with multithreading in mind from the ground up (well, even multiple processes), and its extension API was designed around that architecture.
I think Mozilla made the right choice by picking and extending an existing API that has seen a lot of real world code written against it, rather than inventing a new, incompatible one.