As if them sharing a common appearance isn't enough, yabla shows that they can for the most part be used interchangeably. Since they mean nearly the same exact thing with a few caveats, what is the point of them having so much overlap? Why is there a need for 到 to exist at all?
Both 到 and 至 can function as "preposition" (to) or "result/ degree complement" (until; to the point of). The difference is 到 is more colloquial and 至 is more literary
戰至一兵一卒 (fight to the last man) is a very literary phrase, in colloquial form, this phrase would become 戰鬥到剩下最後一個士兵.
It is not recommended to replace "至" with "到" in literary phrases like 戰至一兵一卒, 延至凌晨 (delay until midnight) and specially not in idioms like 至死不渝 ( you cannot say 到死不渝)
Both 至 and 到 has the meaning of "arrive" and the difference is still literary and colloquial.
至 has the meaning of "ultimate" or "utmost" that 到 doesn't has. e.g. 至高 cannot be changed to 到高
到 can function as a result complement that indicate the verb is successful, e.g. 學到 cannot be changed to 學至
至 has a stronger meaning, thus they are not interchangeable all the time.
至 is usually followed by an extreme situation, death, or a strict deadline of something
戰至一兵一卒 means to fight until every one is no longer able to fight (death)
到 is followed by a condition, which may not be extreme
戰鬥到剩下最後一個士兵 is one of the condition, you can also write
戰鬥到剩下三十個士兵 to fight until meeting the condition of 30 solders left
戰至三十個士兵 is also accepted, but it implies you have nothing left but these 30 solders
到 is used in 到此一遊, which means I was there
至此一遊 is not correct because 一遊 implies one of the destination, not the end destination
事已至此 implies things have already come to this extreme situation
事已到此 is "ok" but not usually used because 已 implies already, which usually requires a more extreme situation