How to activate a plugin on the activation of a theme?

I highly doubt that what is happening is actually process of “activation” in WP terminology. What plugin is likely doing is just filtering data for what theme is currently active, without actually activating/deactivating (which would probably lead to chaotic collisions between different visitors).

The easiest way to hide those shortcodes would probably be to make them empty in a theme that doesn’t use them. Something like this should work:

add_shortcode( 'name', '__return_empty_string' );