Heat the butter and olive oil in a medium pot over medium-high heat. Add the onion and season with salt and pepper. Cook, without stirring too much or too frequently, so the onions get nicely browned and frizzled, 5-8 minutes. You do not want jammy, caramelized onions, but you also do not want burnt onions, so just adjust the heat and stir as needed. Using a slotted spoon, transfer one-quarter of the onions to a small bowl; set aside.
Add the beans and season with salt and pepper. Using a spoon, smash some of the beans, breaking them up to release the creamy, starchy interior (this is what will thicken your stew). I say "some of" because we are not making refried beans, nor are we making bean puree. Think whole, tender beans swimming in a pot of creamy, broken-down, lightly brothy beans.
Add the broth and bring to a simmer. Simmer until the texture is to your liking (soupier, stewier—you choose) and everything is tasting nice and savory, 15-20 minutes. Add the cabbage and vinegar, stirring to wilt. Simmer until the cabbage is totally tender and all the flavors have melded, 10-15 minutes. Season with salt, pepper, and more vinegar if you like.
Remove from the heat and stir in half of the dill. Divide among bowls and top with more dill and some frizzled onions. Add a teensy knob of softened butter—live a little—or a drizzle of olive oil and, if the mood strikes, some sour cream.