Consider a high-end user interface. For example, for button elements you will specify your own rules for active, hover and focus + of course, the styles of the button itself. I read the question (that the picture is one), but I try to give the most general answer
Suppose we use images: there is a high probability that we want for each state to want to use their own image, and the image is a request to the server, while without dancing with a tambourine, when you first load the page, the button on each state will flash (until the answer comes from the server ), which is not very beautiful. And of course - +3 requests to the server (which is not so significant, but nonetheless). The advantages of this approach are that you always get exactly the kind of display that you draw (up to a pixel), when using css3, sometimes the display will be slightly different.
As for the description of buttons by means of css: as soon as the page is loaded, all the states of the button are complete, regardless of whether this is the first visit to the page or not, IMHO is quite important. Another plus is that you can reuse the rules you have written (and for these buttons the situation will be exactly the same). And, of course - there are no requests to the server.
As for performance, a little more productive (usually) will be css because compiling css is very, very fast in all mobile browsers without exception + there is no need to pull pictures from the server. Although, frankly, the increase will be insignificant.
Now about your situation - choose according to the situation depending on your needs.
If we are talking about the development of a mobile device, I personally would choose the option with css. Yes, and if you use css, we can write button state rules without problems, so we can improve the user interface and, significantly, do not lose in performance. I would also like to add an important point - the ability to very quickly change the current display of buttons , when it comes to pictures - you have to redraw the picture, which is IMHO - very, very uncomfortable and, personally, I am very annoying.
In general, it is precisely in terms of speed and performance that there will be no difference. (Or rather, it can be ignored because it is rather similar to pseudo-optimization or nano-optimization)