It’s the dreaded wp_autop filter kicking in because the html code starts on a new line there There is no <br> in the code itself.
Looks like back in ver 6.0 a PHP_EOL was introduced to make the html code start on a new line, to make it easier to see in the source.
Moving the PHP_EOL to before the doesnt help – the wp filter still adds the <br> at the start of the table cell.
While there are things that you can do to stop this happening to any shortcode output (see https://wordpress.stackexchange.com/questions/130075/stop-wordpress-automatically-adding-br-tags-to-post-content), I think it makes more sense for me to issue an update making the html code run on in one line basically avoiding the issue.
Just FYI – you could also consider switching the images off, having the text come p and then use css styling to replace the text with say a dashicon font image. I’m thinking of making that the default for the future sometime. Cleaner, lighter.