Delay a signal in time vs in frequency I have a signal h that I want to delay for a time t.
I know that I could use two possible approaches:

$h_{\text{delay}}[k] = \delta[k-\tau]\star h[k]$
$h_{\text{delay}}[k] = \text{IFFT}\left(\lvert H(\omega)\rvert e^{j\phi(\omega)}\cdot e^{-j\omega \tau}\right)$

Which theoretically should be completely equivalent (as far as I know).
From the performance and precision point of view, which of the 2 is better? Is there any trade-off in numerical precision or speed?
Is there any trade-off in numerical precision or speed?

Yes. For delays that are integer multiples of the sampling period method 1 is far superior: it's computationally efficient, it's bit-exact, it's easy to implement and it's almost fool proof.
Method 2 is computationally expensive, you need to pick an FFT length (which is not trivial) it's subject to numerical noise and it incurs significant latency.  It implements a circular shift, not just a delay and so you need to manage overlap, frame boundaries, etc which is easy to get wrong.
Non-integer (or fractional) delays are completely different can of worms and quite complicated. Suggested reading: Splitting the unit delay