Sure, no security measure is perfect. Hardware tokens are likely to have better properties than TOTP, which has better properties than SMS, which has better properties than nothing.
you can phish SMS exactly the same way you can phish TOTP, I'd say :)