두 is a determiner and 둘 is a numeral
두 is used before a unit name
둘 is used for counting number
likewise, 한 and 하나, 세 and 셋, 네 and 넷 are determiner and numeral pairs.
from five to ten, there are no differences.
I guess it is due to high frequency of use and ease of pronunciation.
하나, 한 개, 한 시
둘 ,두 개, 두 시
셋 ,세 개, 세 시
넷 , 네 개, 네 시
다섯, 다섯 개, 다섯 시
여섯, 여섯 개, 여섯 시
일곱, 일곱 개, 일곱 시
여덟, 여덟 개, 여덟 시
아홉, 아홉 개, 아홉 시
열, 열 개, 열 시
열 하나, 열 한 개, 열 한 시
열 둘, 열 두 개, 열 두 시