Heat the oil in a large saucepan over medium-high heat. Add the onion, bell pepper, and garlic, and cook, stirring occasionally, until tender, 8 to 10 minutes.
Add the beef and cook, breaking it up with a spoon, until no longer pink, 4 to 6 minutes. Add the tomato paste, chili powder, and cumin and cook, stirring, for 1 minute.
Add the tomatoes (with their juices), beans, chocolate, ½ cup water, 1 teaspoon salt, and ¼ teaspoon pepper and bring to a boil. Reduce heat and simmer, stirring occasionally, until thickened, 20 to 25 minutes. Add the vinegar and stir to combine.