Code and tracebacks are more readable if you quote them like it recommends here: About the Python Help category (Notice how it has garbled __init__?)
I can confirm that’s normal:
Python 3.12.1
PS vsj> python -c "import distutils"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'distutils'
If the version of tensorflow you have is compatible with 3.12, it shouldn’t require something not in 3.12 (or it should force it to be installed). So I wonder if you have pinned the version of TF to an old one, or otherwise managed to get one from an earlier Python? Reinstall the latest?