Might be a bit late to the party but this is what I got to make it work:
function fav_plugin_id_render($block_content, $block)
{
if ($block['blockName'] === 'core/shortcode') {
$block_content = str_replace("{{post_id}}", get_the_ID(), $block_content);
}
return $block_content;
}
add_filter('render_block', 'fav_plugin_id_render', 10, 2);
And so my shortcodes in the Query Loops become:
[favorite_button post_id="{{post_id}}"]
Found the idea from: https://wordpress.stackexchange.com/questions/417823/get-the-id-retrieves-same-id-on-gutenbergs-query-loop