Buteo socotraensis is found only on the island of Socotra, Yemen. The species lives in foothills and plateaux of the island, as well as places where one can find deep ravines. It is usually found at altitudes between 150–800 m.