AMP itself allows for fast loading which is true, but to support opening pages in "zero loading time" you still need pre-loading since fast loading still means non-zero loading time. To get pre-loading working in HTML you need to 1) load the iframe of the page in the background, then 2) when the link is clicked, use history.pushState() in order to manipulate the URL to appear you have moved to another page. Unfortunately for (2) the Web History APIs need* both URLs to be on the same domain so Google has an excuse that they need to change the target URL to be under Google for this to work.
Also Google wants to present the scrolling UI that allows you to browse to other articles in the search results (potentially from other domains). This can't be done if you have completely switched to the original website.
See this link for more discussion https://github.com/ampproject/amphtml/issues/6210
Personally I find this misguided at best, an excuse at worst. A fully compliant minimalistic AMP website (or even just a simple site that doesn't use AMP but follow best practices) will load incredibly quickly even without pre-loading. It's disrupting a lot of security and UX best practices (by replacing the address bar with "google.com" domain) just to achieve a very minor improvement. Furthermore they control Chrome. It's not too hard for them to push forward a web preloading standard and start implementing in Chrome.
Edit: Also for the scrolling UI it seems like another way for Google to push more engagement to their site rather than the target URL. It kind of runs counter to the open web nature IMO because there are innovations that helps previewing links already (e.g. iPhone 6s/7 3D touch) and it's the kind of behavior better implemented in the browser itself.