Interfaces makes it hard to keep backwards binary compatibility.
If future functionality requires new methods in the interface then all plugins needs to update to the new version. But if the existing class just gets a new public method with a good default value old plugins will continue to function. And new plugins who wants to use/provide the new feature can just override the public method.