As far as I understand, Bitcoin is programmable, just not Turing complete.
But what's the point of Turing completeness if the gas limits everything already? Why not just repeat the statement in code? Or "Goto" and "Label"?
Are you telling me the EVM's only reason for success is that it was just more palatable to developers and what they believed about how smart contract ought to be?
I believe your question (which most answers actually completely missed) is:
'why don't we consider Bitcoin's scripting language and EVM's scripting language equally powerful, since neither is Turing complete due to Ethereum's gas limit?.
You do have a point, but having the ability to execute loops (while also limiting the execution time using gas) makes the contract much more compact and thus cheaper to deploy on the blockchain, than copying the loop's contents over and over (as you'd need using Bitcoin Script).
Also keep in mind that (sticking with the loop example) the number of loop executions may not be known at the time of writing the contract and depend on the user's interaction with it. So, loop unrolling is not as powerful as an actual loop made from a label and a jump instruction.
Basically, Bitcoin Script is more limited compared to cryptocurrencies tailored to smart contracts, meanwhile neither is fully Turing complete due to limited execution time. Makes sense?