No, you do not need a crystal.
This MCU has a build-in 8 MHz oscillator and a "48MHz Digital Frequency Locked Loop", I would call that a PLL. The PLL can convert that 8 MHz into 48 MHz (it multiplies the frequency by a factor 6).
I do not believe you would ever need a 48 MHz crystal for this MCU as 48 MHz crystals are not so common and some are "overtone crystals" meaning they're actually 16 MHz crystals that can be used at their 3rd overtone which is 48 MHz. But forget that, it is inconvenient and not needed here.
The designs you have seen that are using a crystal are probably using an 8 MHz crystal and then the internal PLL is used to make 48 MHz from that.
You could do the same. Then you would have an accurate clock and you can do accurate timing with that clock.
You can also opt to use the internal 8 MHz oscillator, do realize that that is not an accurate oscillator! That 8 MHz will vary over time and with temperature. So if you would use this as a basis for an alarm clock, don't be surprised if the clock is a few minutes off after only a day.
If you need accurate timing: use an 8 MHz crystal
If you don't care about timing accuracy: you could use the internal oscillator.
In both cases you can run the MCU at 48 Mhz using the PLL.