You should avoid scaling mesh colliders at runtime if you can avoid it. Its not exactly cheap whichever way you do it. Scaling using transform is a lot cheaper than Build, which rebuilds the meshcollider, but neither of them are ideal. Avoid if you can, but if you must - you can workaround by doing this -
Make sure all your sprites have a different z-scale to the x & y. For example, give everything a z-scale of 1.00001 - and now you can scale on x & y and retain batching. Just make sure that the scales are non-uniform ALWAYS, and you will be golden
I'm glad you brought this up - it gave me an idea to work around this much easier by making scales nonuniform whenever .scale is used. Should be able to make this work retroactively as well.