First, you want to roast the poblanos: you can either do this over the flame on a gas stove until skins are blistered and charred, or you can broil them (turning occasionally) until charred on all sides.
Place hot poblanos in a bowl and cover with plastic wrap, letting them steam for 10 minutes.
Peel or rub off the charred skins and discard stems, seeds, and ribs (do not rinse peppers under water).
Cut roasted poblanos into 1/4-inch thick strips; set aside.
In a large heavy skillet melt together the butter and oil over medium low heat, then sauté the onion strips and salt, stirring occasionally, until the onion is golden, about 10 to 12 minutes.
While the onion is browning, begin cooking the pasta by adding it to a large pot of boiling salted water until tender, about 7 to 10 minutes; reserve 1/4 cup of the pasta cooking water, then drain remaining and set aside.
To the sautéed onion add the serrano, garlic, oregano, and cook, stirring, until fragrant, about 2 minutes.
Increase temperature to high, then add the drained pasta, reserved pasta cooking water, the crema, and the onion mixture, and cook, stirring, until the pasta is well coated and heated through, about 2 minutes.
Add the roasted poblano strips, stir well, then add the queso fresco cheese and toss.
Pour onto platter and serve immediately.
Note: cavatappi pasta is a short s-shaped pasta tube that resembles a small corkscrew.