Как правильно работать с Promise?
Вопрос если разница в таких записях?
Только в передаваемом значении:

resolve(script) передаст дальше по цепочке этот script (который никому не нужен, похоже).
script.onload = resolve передаст по цепочке объект события (тоже всем по барабану)

почему такой ее вызов дает ошибку script.onload = resolve(script);потому, что нужна функция, которую вызовут позже, а не мгновенный результат её выполнения.
А теперь оцени как все это проще делается с использованием async / await:
await $.getScript('https://learn.javascript.ru/article/promise-chaining/one.js');
await $.getScript('https://learn.javascript.ru/article/promise-chaining/two.js');
await $.getScript('https://learn.javascript.ru/article/promise-chaining/three.js');
Вместо $.getScript можешь loadScript использовать, результат будет такой же - последовательная загрузка.