There is not only that, Unity uses components from the beginning, but the ECS system is very recent. The difference with the new system is that it is implemented using the Data Oriented paradigm. It is mostly a bunch of good practices that go against a lot of bad habits that OOP tend to give, and that drive performance down. For example, virtual functions is not good to use everywhere, it has a performance cost, a tiny one, but that scales when used for every function every frame. It is quite hard to learn, because it needs to shift our mindset, but it gives a lot of advantages : better performance, but also simpler code with no side effect, and way easier to multithread... And it makes also lodding easier.
This book explains it perfectly (but is quite technical though) http://www.dataorienteddesign.com/dodbook/
The problem of that paradigm is that it needs to shift the way we think about entities, and would need a lot of refactoring to implement. But it is possible to isolate portions of code that are slow and optimise it, so it can be done step by step.