Is WordPress cache shared for all blogs in a multisite network?

It depends.

In general object cache (at least the APCu and memcache based) is global, and is global to the whole server, so the question can be rephrased to “Which caching keys are being prefixed/postfixed with unique strings based on the sub-site”. The answer, as can be seen in https://developer.wordpress.org/reference/classes/wp_object_cache/set/ is that wordpress core adds a prefix to “non global groups”, where the global groups IIRC are the user data related groups and the network settings group.

So in good object cache implementation, user data and network options cache will be “shared” across all sub-sites while post cache etc will be “locally cached”.

This leads to the question of what about the non core my-group. One option is that you will add (or not) prefixes base on the blog id when calculating the cache key to use, or add the my-group as a global group with wp_cache_add_global_groups if you do want to be able to access the same cache info on different sub-sites