Cook the pasta according to the package directions. Reserve ¾ cup of the cooking water and drain the pasta.
Meanwhile, heat the oil in a large skillet over medium-high heat. Season the shrimp with ¼ teaspoon each salt and black pepper. Cook until browned on one side, 2 to 3 minutes.
Add the shallots and red pepper. Cook, tossing frequently, until the shallots are crisp-tender, 30 seconds to 1 minute.
Add the asparagus and cook, stirring occasionally, until crisp-tender, 3 to 4 minutes.
Add the pasta, butter, lemon zest, lemon juice, and ½ cup of the reserved cooking water to the shrimp and asparagus and toss to coat. (Add more cooking water as needed to loosen the sauce.)