One of the big differences between a startup and a big company is that big companies have to make decisions about what to build. For a smaller company that decisions is already made. It’s the reason for the existence of the smaller company.
And the cost of making the wrong decision can be extremely high and it can be hard to both identify that it is the wrong decision and to reverse it.
With smaller companies if they make the wrong decision they will simply cease to exist, but in a larger company some other product (the one that made the company large in the first place) will cover for it.
This isn’t to excuse inefficient practices, but the idea that 100% efficiency (as defined by coding 100% of the time) or even a very high coding throughput is an unmitigated good is not really valid.