The CONNECT method leaves the TCP connection at a different state than it originally was; unlike other HTTP request, the CONNECT method is stateful, it is always the last HTTP request that can happen on that TCP connection.
Once the CONNECT request is finished, that connection cannot be used to transfer other XMLHttpRequest, and instead are solely usable for the tunneled protocol. So the browser would have to discard the connection once the tunnel is closed.
Back when XMLHttpRequest was originally written, Javascript didn't have a Socket API (and it still doesn't now; despite the name, Websocket isn't really a true Socket API, it's more like Messaging API because it has automatic message framing and cannot be used to write arbitrary bytes to the underlying socket), so there isn't really a way to use that tunneled connection from Javascript.
Since the browser can no longer use that TCP connection for anything, and since JavaScript cannot use that connection either due to lack of Socket API and a way to reference the connection, the only valid thing that the browser can do after a CONNECT request is to close the connection.
Prohibiting CONNECT limits the scope of XMLHttpRequest API so standard authors and implementers doesn't have to deal with those issues, and XMLHttpRequest can be designed so it only need to deal with stateless requests.