Esto puede ser por que tengas las normales invertidas en los modelos.
Para hacer booleanas hay que primero preparar los objetos bien.
En tu caso...
Quita el modificador Subsurf
Selecciona uno de los objetos y en Edit Mode seleccionas todos los vértices y haces un Ctrl+N (Recalcular Normales) esto hace que las normales miren hacia fuera.
Cambias a Object Mode y haces un CTRL+A > Rotation ¬ Scale, esto hace que el objeto coja las coordenadas de la escena.
Después de esto ya puedes hacer la booleana.
PERO.... cuando vayas a poner el modificador de Subdivisión Surface, la parte del agujero se te va a destrozar, por que las booleanas generan NGons (caras de mas de 4 vértices y esto es MUY MALO para este modificador.
...
Lo siguiente es saber si buscas que tenga mucha precisión o sea, si es para un render de calidad o a penas se va a notar.
Si no se va a notar, no hace falta que le pongas el modificador de suavizado.
Si por el contrario necesidad que se vea muy correcto, podrías hacer antes un REMESH.
El Remesh, es un modificador que convierte la malla en cuadraditos, según vayas subiendo el valor.. pero también sube la cantidad de vértices...
Y después de este rollo, creo que lo mejor es hacerte un vídeo...
https://youtu.be/MlaiXge3p3Y
Y si quieres una recomendación, es mejor modelar a mano este tipo de modelos, pues te evitas las booleanas.
En este caso sería empezar pon un simple plano.. lo subdivides y borras el vértice central.
Luego dentro de ese plano creas un circulo de 8 vértices (los mismos que tiene la subdivisión del plano).
Y luego solo tienes que unir vértices con letra F.
Y en vez de modelar en volumen, puedes modelar siendo un simple plano que es mas fácil y cuando ya tienes el modelo, le pones un modificador de SOLIDIFY que te dará el volumen que quieres.
Y ya si quieres, lo aplicas y puedes retocar lo que no sea correcto en el grosor.