Vamos começar com o seguinte comando, precisa ser um bloco de comando Repeat e como Always Active (Sempre Ativo)
execute as @a[x=62,y=22,z=-991,dx=-4,dz=2] if items entity @s weapon.mainhand minecraft:gold_ingot run setblock 60 22 -991 minecraft:iron_door[open=true] replace
Qualquer jogador será detectado nesta coordenada, troque por uma de sua escolha
O dx e dz servem para aumentar o raio de detecção nesses eixos
Ou seja: x=1 e dx=2, a detecção vai ser do 1 ao 3 na coordenada X
Depois detectamos o item segurado na mão principal pelo jogador
Neste caso, escolhemos o gold_ingot
Se o jogador estiver segurando este item nesta coordenada, o comando setblock é executado, fazendo a porta abrir naquela coordenada escolhida
Não temos som ao executar este comando com sucesso e para isso...
Coloque um bloco de comando Chain na mesma direção que o bloco de comando Repeat estiver e marque a opção de Condicional e Always Active
Com os dois blocos de comando juntos e configurados, coloque este comando no bloco de comando Chain
playsound minecraft:block.iron_door.open ambient @a 66 23 -991 1 1 1
E podemos fazer o inverso para fechar a porta, apenas trocando o if para unless e a colocar a coordenada no @s com o comando abaixo em um outro bloco de comando Repeat
execute as @a unless entity @s[x=62,y=22,z=-991,dx=-4,dz=2] if items entity @s weapon.mainhand minecraft:gold_ingot run setblock 60 22 -991 minecraft:iron_door[open=false] replace
Som para quando a porta fechar:
playsound minecraft:block.iron_door.close ambient @a 66 23 -991 1 1 1