While that's indeed literally off by one, typically in programming an off by one error is a fence post error: if you have 4 fence posts, there are 3 sections in-between the fence posts, and off by one errors are about mistaking those two things. That's not really what happened in this climbing grip coordinates scenario here.
I realise that by arguing the semantics, and am making this worse.
However
Off by one is the error, not the cause. sure, a lot of off by one errors are caused by index starting confusion, but not all. The hold is clearly off by one. thus its a "real life" off by one error.