In a large dutch oven or flameproof casserole, heat the oil over medium heat. Add the onion. Cook, stirring often, until it softens, about 4 minutes. Add the garlic and cook for 1 minute.
Add the tomatoes with their juices, olives, lime juice, capers, pickled jalapeños, oregano, marjoram, and bay leaf and bring to a simmer. Reduce the heat to medium-low and simmer, uncovered, stirring often, until the tomato juices thicken, about 15 minutes.
Stir in the swordfish cubes and cover. Cook until the swordfish is just firm and opaque, about 4 minutes. Season with the salt. Discard the bay leaf.
Spoon the rice into individual soup bowls and top with the swordfish and sauce. Sprinkle with cilantro and serve immediately.