A slight variation of ‘caught red-handed’ has been around since at least the early 1400’s. Unlike many idioms that have been around that long, though, we can be fairly certain of the origins of this one.
The phrase is actually Scottish and it currently means “caught in the act”. Interestingly, though language and word meanings tend to change over time, this is a phrase that hasn’t changed much in meaning.
The original phrase was “caught red hand”. It was literal. Someone who was caught red hand was caught with blood on their hands. Thus, this is a phrase that got its beginning as a reference to someone who was caught right after murdering someone and while they still had blood on their hands, often still holding the murder weapon. It was later applied to killing animals illegally, such as through poaching, but the same thing applied. The person was caught while they still had blood on their hands.
The current meaning of being caught in the act is nearly the same. It has simply been broadened. The phrase no longer just means to be caught with blood on the hands. For example, a person who is caught stealing money from a cash register and who still has the money in their hands can be said to be caught red-handed.
Of course, the term is also misused. A person who is caught in an obvious lie hasn’t been caught red-handed because the term applies to physical evidence and a lie isn’t physical, even if it has to do with a physical act.
Still, the actual meaning of the term hasn’t changed much through the centuries. This isn’t common for phrases. However, it is perhaps because the phrase invokes a mental image that is straight to the point.