Is there a difference between the two? It usually depends on where you get your product from. Let's use the definitions of both fish roe and caviar to establish a basis for comparison.
When we say Fish Roe, we are referring to any and all unfertilized eggs collected from marine animals. It can be the fully ripe internal egg masses in the ovaries, or the released external egg masses of fish and certain marine animals, such as shrimp, scallop and sea urchins. As a seafood, roe is used both as an uncured cooked ingredient in many dishes, and as a raw salted product to be consumed similarly to traditional caviar.
Caviar in the USA is defined as the pickled roe of sturgeon or other large fish, eaten as a delicacy. In our country, we are allowed to label any salt-cured fish roe as caviar, no matter what fish it comes from. Roe from a variety of fish species is salted using the same process as caviar and even labeled as such (salmon caviar, paddlefish caviar, etc.). However, to be globally qualified as true caviar, the roe not only has to be processed correctly, but also has to come from the right fish.
The traditional definition, as maintained by most of the rest of the world, reserves the word "caviar" for roe that comes solely from fish of the Acipenseridae family, also known as sturgeon. The combination of unfertilized sturgeon eggs and salt creates the delicacy known as caviar.
From that definition we can say that caviar is a type of fish roe but not all fish roe is caviar. If the eggs are not from the right species, the product is salted fish roe, not caviar. Salted fish roe of non-sturgeon species sold from the USA can be labeled caviar (even though they're really considered to be caviar substitutes), but most of the world knows that "real caviar" doesn't come from just any fish; it comes from our ancient friend, the sturgeon.