Defer will delay the loading of JavaScript on the page. This helps eliminate render-blocking situations. However, JavaScript must still load before the page can be shown. In other words, it will continue to influence your Core Web Vital scores regarding JavaScript execution time, transfer sizes, etc. Delay completely eliminates JavaScript from the waterfall/page load. If you do a speed test, it will look as if the scripts do not exist. Instead of loading on page load, they load when the user interacts with the page (moving mouse, scrolling, timer, etc.) This boosts your Core Web Vital scores and enhances your first content paint (FCP). However JS delay should be done carefully, so that not to break a page ( for example when delaying the script responsible for rendering (not rotating) top slider in the page).