Various parts of three.js depend on each other — for example, THREE.OrbitControls depends on the rest of the library. It uses import { ... } from 'three'
to do so, which is necessary when installing the library from NPM. CDNs are (mostly) just hosting what they find on the NPM repository, and require the import maps to resolve those imports.
Note that you’ve imported different parts of the library from different CDNs and from different three.js versions in the example above — this can easily break, it’s best to stick with a single CDN and three.js version.
Personally I use a build tool instead, once you’ve got the hang of it things are much easier. Vite is a popular option.