Все зависит от ваших потребностей.
Это компромисс между точностью, скоростью и размером данных.
Если вы пишете бухгалтерское приложение, вы не можете потерять точность и поэтому вполне можете использовать NSDecimal число.
Если вы выполняете сложный численный анализ, скорость может иметь значение, поэтому NSDecimalNumber будет слишком медленным. Но даже в этом случае ваш анализ будет смотреть на точность и ошибки, которые вы можете себе позволить, и здесь могут быть случаи, когда вам нужна большая точность, которая удваивает и т.д.
NSNumber - это отдельный случай, это кластер классов, позволяющий хранить числа типов C в других объектах и использовать в Какао.