Do you know if this is correct? Why can't a US citizen accept a knighthood?
No Title of Nobility shall be granted by the United States: And no Person holding any Office of Profit or Trust under them, shall, without the Consent of the Congress, accept of any present, Emolument, Office, or Title, of any kind whatever, from any King, Prince or foreign State.
So a citizen can, but can then no longer hold any sort of office, unless approved prior to acceptance by Congress. Congress generally only approves of honorary titles.
The Constitution says that people holding public office can't accept titles of nobility.
No title of nobility shall be granted by the United States: and no person holding any office of profit or trust under them, shall, without the consent of the Congress, accept of any present, emolument, office, or title, of any kind whatever, from any king, prince, or foreign state.
Article I, Section 9
But I don't know of anything precluding all US citizens from holding titles of nobility unless its the so-called missing 13th amendment.