I re-iterate, why re-invent the wheel?
Plenty of reasons, off the top of my head:
The company already has an established, proprietary engine (which Frontier have, since 2004 when they wrote it for Rollercoaster Tycoon 3).
A company might want more control over the engine they use and feel that an engine belonging to someone else is too limiting.
No other engine is capable of addressing their specific needs. As an example, Unreal Engine does not allow pornographic games (or games with an ESRB of M, or extreme violence) to be built with it's engine .. which is kind of weird given the whole .. uhm .. Unreal Tournament thing.. but okay, no extreme violence.
In the case of the Unreal Engine, a company might not be prepared to hand over 5% of their turnover; after also giving them $3000 per product, per catalogue.
A company might not want to take the risk that an engine cannot support their needs; which they only find out months after development (this is not something you can plan for), or support for that engine ceases, or a recent change to the core engine code introduces a metric hell-ton of issues into your build. You're forced to update if you want to keep your engine relevant, but the changes set your development time back to unacceptable levels (think: months).
Switching engines can be extremely costly; not just financially, but on time and resources. There is also a chance you'd have to redo most, if not all, of the work you've already done.
Star Citizen, for example, got lucky because Lumberyard uses CryEngine architecture; which means the CIG team spent "a day or so of two engineers on the engine team".
1
Another developer ( I can't find their name right now ) made the same call; but they had to scrap months upon months of hard work because switching from Unity to UE made it impossible to migrate with their existing source as most (all) of it was Unity-specific.
In my personal capacity, there are dozens upon dozens of 3rd party component suites out there that can do so much of what I want to do. I don't buy them because they are cost prohibitive, so I simply just write my own in-house variation. I can modify as needed, I don't have to pay anybody for it and it'll always be supported for as long as it's relevant to the company; in addition, it can be written in such a way that it's compatible with several of our applications; win/win.