Why is that Software Engineering products take longer time to build and are much more faulty than normal Engineering products?

Because other Engineers have the boundaries of gravity, and materials. Software Engineers are only limited by the human stupidity.