MDN dice que " los objetos de función no pueden ser duplicados por el algoritmo de clonación estructurada; intentar arrojar una excepción DataCloneError ".
¿Por qué la copia de un objeto de función emite un error constructuredClone() ?
Si lees en MDN/structuredClone , dice
Excepciones
DataCloneErrorDOMException
- Se lanza si alguna parte del valor de entrada no es serializable.
Para saber por qué las funciones no son serializables, vea aquí: ¿Por qué una función no es serializable?
Por lo que entiendo de esas respuestas, el TL; DR es que se debe a que una función se puede convertir en una cadena, pero las variables/funciones a las que se hace referencia en la función que están fuera del alcance causarían problemas.