Hola, en mis tiempos de programador de python se decía que PyInstaller era mejor o al menos mas actualizado que py2exe sin embargo yo siempre use py2exe para todos mis ejecutables y nunca tuve problemas, te recomiendo que lo pruebes.
Por otro lado ese error que tenes es porque tu exe intenta cargar una librería dll y no la encuentra, lo que yo haría para poder cargar esa dll -siendo que suelen pesar poco- es lo siguiente:
1. Copiar esa dll al escritorio.
2. Convertirla a base64 y esa información volcarla/guardarla en un archivo txt.
3. Copiar el volcado de la dll (contenido del txt) y guardarlo en tu código python dentro de una variable string.
4. Cuando tu programa se ejecute en otra PC va a hacer lo contrario a lo anterior es decir esta vez decodificar el valor de la variable string donde tenes la dll (en base64) para crear el archivo dll con el mismo nombre python38.dll
5. Vas a guardar esa dll ya creada en algún directorio de esa PC puede ser en la carpeta temporal o en una parte del sistema de windows (si es que te lo permite), cuándo windows necesita alguna librería suele buscarla por todo el sistema operativo.
Ahora prueba a ejecutar tu exe y ver si obtienes otra vez el error, si vuelve a aparecer mejor utiliza py2exe:
https://www.py2exe.org/Saludos