“Is it logical to think that the update script assumes v3.5 to be installed while in actual fact the version is lower?”
Yes it seems while master contains V10 that remains on 2.7, develop has V11 that runs on 3.5? So to switch between the two in the same bench causes the confusion you have.
This states the python version in use is set and dictated by the bench environment ERPNext + Python 3
Hence master and develop must have separate benches.