Utilizing SVGs offers significant advantages over using a sprite, especially when executed correctly. SVGs boast excellent compatibility across all browsers.
An SVG serves as a vector shape that can be infinitely zoomed in, whereas multiple sprites are required for various density displays - it's worth noting that using a single high-resolution sprite and scaling it down with background-size may not render well on all browsers, often leaving artifacts.
SVG sprites can be seamlessly integrated inline, reducing the number of HTTP calls - depending on the platform you're working on, an SVG can be converted inline using plugins or addons such as those available in Ember.
You didn't specify the type of shapes under discussion, but for monochromatic shapes, tools like icomoon can be employed to import all SVG files into a singular Icon font file. This means only one HTTP call is necessary to retrieve the font, similar to how it would work with a sprite. Additionally, an icon's color can be modified using the CSS color
property; hence, a single icon can have multiple color variations through CSS without needing separate iterations as required by sprites.
In terms of performance, nowadays, the difference between using hundreds of SVGs compared to an image sprite is typically negligible. Even if there's a slight slowdown in theory, it's unlikely to be perceptible to the end user.