Trent Franks, the GOP incumbent who resigned this seat, left in disgrace, and scandalized incumbents tend to leave a bad taste in voters’ mouths for electing someone of the same party, which perhaps partially explains the less than enthusiastic margin for Lesko.
Yes. Turn out for the election Franks won in 2016 was ~300,000 total votes. Turn out for this one was around ~174,000. Most of the decrease in turnout was by Republicans (a decrease of ~112,000 votes), but Democrats also had a decrease (~10,000 votes). The bottom line, to me, is that 2016 was a presidential election year, and Trump brought out a lot of voters. This time around turnout was less either because voters weren't generally aware of this special election, or weren't motivated to vote because of the Franks scandal or other reasons.