Vertex shaders gets called a lot less than fragment shaders. It's because the fragments get generated from the vertices (by interpolation)with a process that is called rasterization. Rasterization basically generates fragments using the triangle's corners and give each fragment an interpolated value using the values in the vertices, produced by a vertex shader.
Let's say that you have a triangle ABC
like this:
a = 0,0,0
b = 1,0,0
c = 1,1,0
Depending on the resolution, this generates some amount of fragments covering the whole triangle.
With certain projection configuration thisThis will produce a triangle which covers half of the screen, which at 1920x1200 resolution will be 1920*1200/2
fragments. The amount of fragments increase with every triangle you draw.
A fragment is not a pixel. It is much more.
If vertices send some properties to the fragments (like a colour), they get interpolated across the surface of the triangle to all the fragments.