For example: there’s the USS Carl Vinson and then the HMS Vengeance and HMS Victorious, and HMS Agamemnon. Why do American ships have such measly names?
You've picked probably the single biggest outlier for US Navy naming conventions for your example in the Vinson but its worth looking at the standard doctrines for naming vessels of different types for the USN to understand why they got this way.
We should first note that the authority to name ships rests with the Secretary of the Navy and has since the 1819. Meaning the same person who has to fight before Congress for the good of the fleet, funding, oversight, and all other matters also gets to name the ships that are paid for. So already we can see why naming ships after certain places, things, or people can be of political value.
However it is obvious that value in the spirit invoked by a name has value and the SECNAV is charged as stated in a 1960's appropriations bills to:
One of the greatest values of a ship’s name is the inspiration it provides to those who sail on her. Therefore special effort will be made to select names that reflect part of the Nation’s and the Navy’s great heritage.
So we see here deference to the symbols of the nation at-large, and previous naval vessels of note. But from the get go in the same 1819 reorganization of the Navy noted above we see that the fleet was going to bear names of places and things, and the occasional person important to the country.
“That all of the ships of the navy of the United States, now building, or hereafter to be built, shall be named by the Secretary of the Navy, under the direction of the President of the United States” in accordance with rules specifying that ships of the first class were to be named after states of the Union, and second and third class ships were to be named, respectively, after rivers and principal cities and towns... that third-class vessels (those with fewer than twenty guns) were to be named by the Secretary of the Navy as the President may direct, taking care that no two vessels in the Navy shall bear the same name.”
And we see this in the names of the Original 6 Frigates, those ships first authorized for the USN: Constitution, President, United States, Constellation, Chesapeake, and Congress.
Over time these categories have also shifted to quote a Dept of the Navy report to Congress on the topic, and in particular in 1969 retired Admiral Peria was asked to convene a group of other flag officers and look at cleaning it all up it didn't change much but did slim down some of the choices for certain types of ships:
Attack submarines, for example, were once named for fish, then later for cities, and most recently for states, while cruisers were once named for cities, then later for states, and most recently for battles. State names, to cite another example, were given to battleships, then later to nuclear- powered cruisers and ballistic missile submarines, and are now being given to attack submarines.
Indeed the choice to shift the naming of new steel battleships for states, and cruisers for cities in the last years of the 1800'ss was specifically to help tie the nation to its navy, which except for a few coastal cities operated mostly out of sight.
We can also look specifically at how US Carrier naming has evolved. You have the first generation of the prewar group of Langley, Saratoga, Lexington, Ranger, Yorktown, Enterprise, Wasp, and Hornet. These are split evenly between historic ships and battles. Then the Essex class continued the same rough trend with ships of both types like Intrepid and Antietam. And finally the post war Midway class began the shift to what it is today with the 2nd hull being renamed FDR following his death, then a resumption of using historic names with the exception of a ship named for James Forrestal and JFK, and following the first ship of the Nimitz class its gone to presidents plus Vinson.
At this point the largest input on naming capital ships, and arguably has been for the past 50 years is interest groups for reusing certain names. Its why the next two carriers the USN is building will be another Enterprise and JFK. While the America class amphibious assault ship reuses that name and the second hull reuses the name Tripoli. While smaller combatants like destroyers have for 100 years at this point consistently been named for members of the Navy-Marine-Coast Guard team who distinguished themselves.
In the end the USN has a set body of acceptable names in large part because of how political naming ships can get, and conscious desire to tie landlocked parts of the nation to the fleet. But there are always spots for exceptions it should be said. But while the feelings meant to be evoked by the USN naming schemes might be decidedly less martial than the Royal Navy, that doesn't mean the Royal Navy is free from its own problem of pressure to recycle too many names and political pressure(their new carrier will be the second Queen Elizabeth for instance though named for Elizabeth I but the connection to the reigning queen cant be avoided and her sister will be the 7th Prince of Wales).
For some more reading from the USN perspective I would first point to a few reports the Dept has prepared for Congress on the matter!
https://www.history.navy.mil/content/dam/nhhc/browse-by-topic/heritage/pdf/Shipnamingreport.pdf
I would suggest if he is willing /u/thefourthmaninaboat could speak more specifically on the Royal Navy!