An update from my side: after some additional experimenting and digging I found the potential issue in my script. This issue 9 on the datasets repo explains the differences in splitting multiple sentences in different implementations of ROUGE scores. Since the ROUGE metric in the datasets library corresponds to (2) it seems that ROUGE-L ignores sentence splitting. I had to add the following step after decoding adding a new line:
dec = [d.replace('. ', '.\n') for d in dec]

And then got the following scores with the new datasets=1.1.0 which also returns ROUGE-Lsum by default:
for metric in ['rouge1', 'rouge2', 'rougeL', 'rougeLsum']:
    print(f'{metric}:\t{score[metric].mid.fmeasure:.4f}')

rouge1: 0.4238
rouge2: 0.2033
rougeL: 0.2977
rougeLsum: 0.3956

This is much closer to the reported scores assuming rougeLsum corresponds to rougeL as measured by other libraries. Can you confirm that this is the underlying issue? Also, there still is a discrepancy, especially in ROUGE-1 which is unexplained.