Heat the oil in a large nonstick skillet over medium heat until it is hot and shimmering but not smoking, about 2 minutes. Add the beef and cook, stirring constantly and breaking up the meat with a wooden spoon, until it is browned and develops crispy edges, about 6 - 10 minutes.
Add the onion and cook, stirring occasionally, until softened, about 4 to 5 minutes. Add the garlic and cook, stirring constantly, until fragrant, about 1 minute.
Add the chili powder, cumin, coriander, paprika, oregano, and cayenne pepper. Stir in the tomato sauce, water, sugar, and lime juice.
Bring to a simmer, then reduce the heat to medium-low. Cook uncovered, stirring frequently and continuing to break up the meat, until the liquid reduces and the mixture thickens but is not completely dry about 10 to 15 minutes.
Taste and adjust seasonings if needed. Using a wide, shallow spoon, divide filling evenly among taco shells; place two or three tacos on individual plates. Serve immediately, passing toppings separately.