import creates a module variable.
import tkinter
print(tkinter)
Output:
<module 'tkinter' from 'C:\\Program Files\\Python38\\lib\\tkinter\\__init__.py'>
Now you can use the new tkinter module variable to access the module attributes.
from module import name creates a new variable that references the imported part
from tkinter import Frame
print(Frame)
Output:
<class 'tkinter.Frame'>
When you do "from tkinter import *" you create a variable for each attribute in tkinter. And there are a lot of attributes, most of which you know nothing about.
import tkinter
print(len(dir(tkinter)))
Output:
160
"from tkinter import *" creates 160 variables in my program and I don't know the name of half of them. At the point you are in your programmer development you don't know most of them. You won't know if the variable you just created ends up breaking something in tkinter because the variable name is the same as a tkinter attribute.