WP_Query with one category in args shows other categories

Tried your code in a simple page and work correctly.
Have you set the “Blog” page as posts page within the “Settings > Reading”?

Because in this case the correct code that the cms will load is home.php or index.php according to the template hierarchy https://developer.wordpress.org/files/2014/10/template-hierarchy.png

tech