Born in Fazakerley, Dyson joined Everton at the age of six and progressed through the youth ranks.[3] Along the way, Dyson grew up with Conor Grant and played together in Everton youth ranks.[4] He also said about his position: "I would say my main position is a central striker but throughout the years at Everton I have played on the left, coming in at the back post. In my youth team days I have played on the right, so anywhere across the front three really. I have learnt all three roles and wherever the gaffer puts me in the team I will give 100 per cent."[5] In May 2014, he helped the side win the Under-18 Premier League title in the 2013–14 season.[6] In July 2014, Dyson turned professional when he signed a two–year contract.[7]
During his development in hopes of breaking through the first team, Dyson continued to feature for the U18 and U23's side, under Manager David Unsworth.[8] At the end of the 2015–16 season, he signed a contract extension with the club.[9]
In the 2016–17 season, Dyson started and scored his first goal in the tournament, in a 2–0 win over Bolton Wanderers in the Group Stage of EFL Trophy.[10] He went on to feature two more matches in the Group Stage of EFL Trophy, as they went on to lose two of those matches and eliminated from the tournament.[11]> At the end of the 2016–17 season, he signed another contract extension with the club.[12] After his 2017–18 season was overshadowed by injuries, Dyson was released by the club.[13]
Loan spells from Everton
On 6 August 2015, Dyson was first loaned out when he spent a loan spell in non-league with Stockport County on a youth loan.[14] He made his Stockport County debut, where he started and played 68 minutes, in a 2–1 win over Boston United in the opening game of the season.[15] It wasn't until on 11 August 2015 when Dyson scored his first goal for the club, in a 2–1 win over F.C. United of Manchester.[16] He later scored two more goals for the side against AFC Telford United and AFC Fylde.[17] He went on to make eight appearances and scoring 3 times before returning to his parent club in early–September.[18][19]
On 9 November 2015, Dyson re–joined Chester on a month's loan.[20] The next day, he made his Chester debut, where he came on as a substitute for James Roberts, in a 3–1 win over Kidderminster Harriers.[21] Dyson went on to make four appearances for the side before returning to his parent club in December.[22][19]
Dyson signed on loan for Grimsby Town on 31 January 2017 for the rest of the season.[23] He made his Grimsby Town debut, where he started and played 84 minutes before being substituted, in a 1–1 draw against Luton Town on 4 February 2017.[24] Two weeks later on 18 February 2017, Dyson scored his first goals, in a 3–0 win over Mansfield Town.[25] He scored again two weeks later on 4 March 2017, in a 2–1 loss against Wycombe Wanderers.[26] Dyson became a first team regular at Grimsby Town and impressed for the side that he won Grimsby's Young Player of the Year award at the end of the season.[27] He went on to make 16 appearances and scoring 4 times for the side.
Plymouth Argyle
On 11 June 2018, Dyson signed for Plymouth Argyle, then of League One, on a free transfer after being released by Everton.[28] He was previously linked with the club on a loan move the previous year, but the move never materialised.[29]
On 31 January 2019, he joined League Two side Stevenage on loan until the end of the season,[30] but never made any appearances for The Boro after a persistent ankle injury.[31] The injury kept him out for the full season.[32]
Having failed to recover from his ankle injury, Dyson announced his retirement from playing in October 2019, aged 23.[33]