Destroy(); is an explicit command to remove the object from the game scene immediately* or after a set time increment. As soon as you call it - the item is destroyed in context of the scene.
Garbage collection will take it as soon asas soon as there are no more when it is ready assuming there are no more hard references to that item. However, this is not controllable in Unity without calling the GC system object.
*** clarification - immediately meaning in that frame. After the Update loop the item is destroyed, it will always be done before rendering**