Just like in a typical, full Python kernel-backed JupyterLab instance the indicator for the kernel is in the upper right side. Always let that clear before trying to run code in JupyterLite. The initial start-up time can be a bit longer than expected and sometimes if you execute code too soon the browser where things are running in can glitch and because of caching and how WASM works behind-the-scenes it seems sometimes it will get stuck. Refreshing the page fully, and other tricks such as using a different browser or incognito mode can help jump-start things.
Since you said you are using it for teaching, I’ll point out JupyterLite is still considered very experimental, see cautions under ‘Status’ on the main JupyterLite page and on the Try Jupyter page where it clearly highlights Experimental. I’d recommend using a typical, full Python kernel-backed Jupyter for a better experience and more abilities for your trainees. Or at least point this out to them. Traditionally, I’d recommend using anonymous, temporary sessions served via MyBinder such as you’d get by pressing the very first launch binder
badge listed here on the Sample MyBinder Repositories page (direct launch link here; however, the largest contributor of computational resources exited the federation a few months ago and the experience can be rocky at times. Use of the MyBinder service combined with a online repository like GitHub does though allow you to customize notebooks to launch and have packages pre-installed just like you are probably doing with JupyterLite now.