The term is often used loosely to mean "an agent with a scheduler," but the scheduler is the trivial part. What separates an autonomous system from a script on a timer is everything after the trigger: how it decides what to work on, what process it follows, where it is forced to stop for a human, and what evidence it leaves behind.
A useful test: if the loop ran forty times unattended, could you say afterwards what it did, why, under which rules, and who approved the parts that needed approval? If the answer lives in scattered logs and prompt files, you have automation. If it lives in structure the system itself enforces and records, you have an autonomous system.
Three properties are worth checking before calling a loop autonomous. Selection: does it decide what to work on from the live state of the work, or does it fire the same job blindly? Process: does each run follow a defined sequence of steps that someone can read and change, or does it improvise from a prompt? Stopping: are the points that need a person built into the process, so the loop waits there, rather than hoping the model asks? A loop with all three can be trusted with more over time. A loop missing one is a script with a model inside.