In a large skillet over medium heat, warm ¼ cup of the canola oil. When the oil is hot, add the onions. Season them with salt and pepper and cook, stirring constantly, until the onions are light golden brown and very soft, 20 to 25 minutes. Add the garlic and spinach and cook until the spinach has wilted and all of the liquid has evaporated, 8 to 10 minutes.
Meanwhile, in a small nonstick skillet over medium-low heat, add the remaining 2 tablespoons of canola oil. Add the shallots and cook until they are golden brown and crisp, 10 to 12 minutes. Remove using a slotted spoon and transfer to a paper towel-lined plate. Season with salt and set aside.
In a food processor, combine the yogurt and feta and pulse until smooth. Transfer to a medium bowl. Stir in the onion mixture, 2 tablespoons of the oregano and the lemon juice. Season with salt and pepper. If the dip looks too thick, stir in a tablespoon of water (as needed).
To serve, put the dip in a bowl and top it with the remaining oregano, walnuts and the reserved crispy shallots. Drizzle with olive oil and serve with crackers.