I don't think "real" engineering is necessarily any better at estimating. Take a look at any large construction project and the norm is to be over time and over budget.
There are lots of reasons for that, which can fall outside of the scope of engineering, but the same is true for software.
I want to second this, I worked as a mechanical engineer and never had accurate time estimates there either. Estimates of how long the work will take will be wrong whenever there are new problems to be solved, which is all engineering worth the name.
There are lots of reasons for that, which can fall outside of the scope of engineering, but the same is true for software.