Как изменить формат даты в строке?
$dataIn = 'Laldldlldlsdls.... Ends Jul 2, 2021';
$dataOut = preg_replace_callback(
    '/Ends (.+)/',
    fn($matches) => date('F d, Y', strtotime($matches[1])),
    $dataIn
);
Регулярку настроить по вкусу.
1. Зачем используется preg_match_all да ещё с параметром PREG_SET_ORDER если по факту используется только 1 результат? Либо у вас множество таких дат - тогда и обрабатывать их надо в цикле. Либо одна дата - тогда достаточно preg_match.

2. Зачем добавлен модификатор "m", который тут абсолютно бесполезен?

3. Почему для поиска даты у вас одна регулярка, а для замены той же самой даты - другая регулярка? При замене регулярка вообще не нужна, т.к. вы знаете конкретную строку, которую собираетесь менять. Можно пользоваться обычным str_replace если есть уверенность, что такой же строки не может быть в других местах текста. Либо как вариант в первой же регулярке захватывать весь текст до даты и тогда результатом будет "текст до даты" + "новая дата".

В целом не вижу никаких проблем в данном подходе кроме чистоты кода. Ну конечно, если алгоритм корректен для поставленной задачи.
Достаточно исправить замечания 1-3.