Can someone explain me why apply_filters() is called here?

It’s not doing anything on its own – the original author is offering you the ability to change these hard-coded actions without needing to edit the source code itself.

Imagine you just edited the array right there. Then a plugin update comes along, the file is overwritten, and your custom changes are lost.

Using a filter, the original author has allowed you to “plug” into their code from elsewhere, and now the two can co-exist without you losing your changes anytime the original plugin gets an update.

In fact, whether a plugin is actually ever updated or not (perhaps it’s a private plugin and not hosted on the WordPress plugin repo), it’s good practice to utilise filters & actions – it’s the very heart of WordPress’ “pluggable” architecture.

It seems like you’ve found this code online and are repurposing it to use directly yourself? In which case I can see why the filter could appear redundant, but I hope my answer sheds some light on why you might often see filters & actions in the wild.

Update: Using the above code as an example, you could (from your own plugin or theme) add an additional action to $purge_actions like so:

add_filter( 'my_plugin_purge_actions', function ( $actions ) {
    $actions[] = 'my_custom_action';

    return $actions;
});

Learn more about WordPress hooks.