Trailing commas in multi-line arrays, function calls and function param lists avoid dirty diffs when adding yet another item or parameter. This happens all the time, especially with things like constructors of service classes, arrays of service parameters for the aforementioned, lists of fields for HTMLForm or their options, lists of attributes for Html::element(), internal API calls, and so on. On the other hand, it is sometimes aesthetically displeasing when an array is technically multiline, but maybe it will only ever have 1 item, or maybe it is technically multiline, but really it's a single line of code that had to be wrapped due to line length.
PHPCS comes with two rules to require trailing commas in multi-line arrays, Squiz.Arrays.ArrayDeclaration.NoCommaAfterLast, Squiz.Arrays.ArrayDeclaration.NoComma (despite the names, they both require commas to be present after the last array elements, but one applies to associative arrays and the other one to numeric arrays), but they are not nuanced like that, and I didn't find anything similar for function calls (trailing commas allowed since PHP 7.3) and parameter definitions (trailing commas allowed since PHP 8.0).
Maybe we can come up with something with a light touch that will enforce this in the obvious cases where it helps, but doesn't disturb the code in the less obvious cases. Something like: only require the trailing comma when the array/call/definition is multi-line, each item is on a separate line (so it's not a wrapped single line), and there are at least 3 items? We may want to make this configurable and off by default, but I'd like to enable such a thing for the code I work on.