Разница заключается в уровне абстракции между использованием класса UdpClient и управлением многоадресной рассылкой на более низком уровне, используя sockets и многоадресной рассылки. Если вы используете UdpClient, вам не нужно беспокоиться о параметрах сокетов и многоадресной рассылки, поскольку это выполняется под капотом в классе UdpClient. Если вы хотите больше контролировать то, что происходит, вы можете использовать более низкоуровневый подход с параметром socket и multicast.
Возможно, проще реализовать базовые функции многоадресной рассылки, используя UdpClient.
Для справки вы можете проверить следующие два учебника (первый использует UdpClient и более высокоуровневый, а второй использует сокеты и многоадресную опцию):