Bring a large pot of salted water to a boil over high heat.
Heat oil and butter in a large, heavy, straight-sided skillet over medium-high heat. Add shallots and cook, stirring, until well browned, about 5 minutes. Reduce heat to low; continue to cook, stirring occasionally until very soft, about 5 minutes. Season with salt, pepper, and red-pepper flakes.
Add dandelion greens and saute until just beginning to wilt, about 3 minutes. Add frisee and cook until wilted, about 5 minutes. Add chicken broth and bring to a simmer. Cook until greens are tender.
Heat grill pan over medium-high heat and brush with oil. Drizzle sardines with lemon juice. Season sardines with salt and pepper. Cook 3 minutes per side and transfer to a cutting board. Fillet the sardines, discarding bones; set aside.
Add pasta to boiling water until al dente, then drain, reserving some of the cooking water. Add pasta to the greens mixture and gently stir in lemon zest, parmesan, and sardine fillets. Season with salt and pepper. Stir in enough of the reserved cooking water to form a sauce. Serve immediately with additional lemon zest, cheese, and a drizzle of olive oil.