This is a bit outwith my area of experience with TVM, however I do recall seeing TVM had WebGL support, as discussed in this 2018 blogpost.
However, this forum discussion in 2020 discussed deprecating in favour of WebGPU, with WebGPU being the backend used in the WASM blogpost linked earlier in this thread.
When you are comparing onnx.js
with TVM, are you using WASM or WebGPU for the target_device
?