Great answer @Sebastian Hernandez.
Communication is key and having a clear and concise scope of work. Problem is when you start getting into things and taking stuff out...you find an issue or issues. The contractor is not going to handle that for free. So, this is where you knowing how to troubleshoot those issues with a good contractor helps. But you should expect to pay for a change order.
While you may feel this is 100% bad luck with contractors, you should try and evaluate yourself as well. "What can I do better?" "How can I better communicate what I want?"
We have had decent luck with contractors but it was a process to get to the point where we are now. Only 2 or so that we don't work with over the last 2 years and dozens of projects.
We found our guys through referrals from some of our great other tradespeople. We found our HVAC guy (who is awesome) through our plumber. They know who is good and who isn't.
Just my 2 cents.