Actualizado:

1. Zonas redondas con distance

/execute positioned 100 64 200 as @a[distance=..5] run title @s actionbar "Estás en la plaza"

distance=..5 significa a 5 bloques o menos del punto indicado.

2. Cajas con dx, dy y dz

/execute as @a[x=100,y=60,z=200,dx=10,dy=5,dz=10] run title @s actionbar "Estás en la sala"

x, y y z son una esquina, y dx, dy y dz el tamaño desde ahí, así que esta caja va de x 100 a 110, y 60 a 65 y z 200 a 210. Cuenta cualquier parte de la caja de colisión que esté dentro. Indica siempre x, y y z; si no, la caja empieza donde se ejecuta el comando.

3. Ejecutar una vez al entrar (iterativo)

/execute as @a[x=100,y=60,z=200,dx=10,dy=5,dz=10,tag=!in_room] run title @s title "Bienvenido"
/tag @a[x=100,y=60,z=200,dx=10,dy=5,dz=10,tag=!in_room] add in_room

La etiqueta evita que el título se repita mientras el jugador sigue dentro.

4. Detectar la salida (iterativo)

/execute as @a[tag=in_room] unless entity @s[x=100,y=60,z=200,dx=10,dy=5,dz=10] run title @s actionbar "Has salido de la sala"
/execute as @a[tag=in_room] unless entity @s[x=100,y=60,z=200,dx=10,dy=5,dz=10] run tag @s remove in_room

Los jugadores con la etiqueta que están fuera de la caja acaban de salir. Quitar la etiqueta permite que el paso 3 vuelva a activarse la próxima vez.

5. Ejemplo: zona segura (iterativo)

/effect give @a[x=100,y=60,z=200,dx=10,dy=5,dz=10] resistance 1 4 true
/effect give @a[x=100,y=60,z=200,dx=10,dy=5,dz=10] regeneration 1 1 true

6. Zonas a partir de marcadores

/summon marker ~ ~ ~ {Tags:["zone"]}
/execute at @e[type=marker,tag=zone] as @a[distance=..6] run effect give @s glowing 1 0 true

Así un solo comando sirve para todos los marcadores, y mover una zona es mover su marcador.

Solución de problemas

Comprueba tu comando

El Command Error Doctor (en inglés) revisa en tu navegador los errores de sintaxis más comunes.