Place a large pot over medium-low heat and melt 1 tablespoon of the unsalted butter.
Add the thinly sliced sweet onion along with 1/2 teaspoon salt, then stir to coat the onion evenly in the butter.
Cook the onion for 30 to 40 minutes, stirring frequently, until it becomes deeply softened and caramelized. Watch closely during cooking to prevent scorching.
Stir the chopped fresh sage into the caramelized onion, then transfer the mixture to a bowl and set it aside.
Using the same pot, add the remaining 1 tablespoon unsalted butter and warm it over medium heat.
Add the fresh spinach and cook, stirring occasionally, until the leaves wilt.
Stir in the minced garlic and cook for about 30 seconds, just until fragrant. Remove the pot from the heat and reserve the spinach mixture.
Preheat the oven to 450 degrees F.
Line a roasting pan or baking sheet with aluminum foil, then coat the surface with nonstick spray.
Set the pork tenderloin on a cutting board. With a sharp knife, slice it open lengthwise, beginning about 1/4 inch from the bottom, then continue cutting to unfold the meat into a flat surface.
Season the inside of the opened pork tenderloin with the remaining salt and the black pepper.
Spread the cranberry sauce over the pork, keeping 1 to 2 inches clear around the edges to help with rolling.
Layer the wilted spinach over the cranberry sauce, then add the caramelized onion mixture.
Scatter the crumbled goat cheese evenly over the filling.
Roll the pork tenderloin firmly around the filling, then secure it with kitchen twine.
Season the outside of the rolled tenderloin with salt and black pepper.
Place the tied pork tenderloin on the prepared roasting pan or baking sheet.
Roast for 30 to 35 minutes, or until the internal temperature reaches about 140 to 145 degrees F.
Remove the pork tenderloin from the oven and allow it to rest for 20 minutes before slicing.
Cut the rested tenderloin into slices and serve with additional cranberry sauce, gravy, or preferred side dishes.