arp
é capaz de obter nomes como entrada e imprimir nomes na saída. ip
usa apenas endereços.
Se você puder lidar com endereços, modificar a saída será bem fácil.
$ ip neigh show to 10.0.0.1
10.0.0.1 dev wlan0 lladdr dc:fb:02:xx:xx:xx REACHABLE
$ ip neigh show to 10.0.0.1 | awk '{print $1 " " $5}'
10.0.0.1 dc:fb:02:xx:xx:xx
Acabei de notar que o seu título pergunta especificamente sobre nomes DNS. Se esse é o requisito, convém traduzir o nome em seu script.
$ ip neigh show to 'getent hosts <dnsname> | awk '{print $1}'' | awk '{print $1 " " $5}'
$ 10.0.0.1 dc:fb:02:xx:xx:xx