Fatti:
A.
A.a. Il 30 aprile 2020, con pubblicazione sul foglio ufficiale del Cantone Ticino n. 36/2020, il Comune di X._ (di seguito: il Comune o il committente) ha indetto un concorso, retto dal Concordato intercantonale sugli appalti pubblici del 25 novembre 1994/15 marzo 2001 (CIAP; RL/TI 730.500) e impostato secondo la procedura libera, concernente l'aggiudicazione del servizio di ritiro e smaltimento degli scarti vegetali dei propri ecocentri per il periodo 2020-2021.
A.b. Il bando di concorso descriveva le prestazioni richieste come segue: " Oggetto del presente capitolato sono il servizio di ritiro ed il successivo trattamento degli scarti vegetali consegnati dai privati cittadini presso gli ecocentri. L'assuntore accetta, presso la propria sede, gli scarti vegetali fini (erba, fogliame, ecc.) consegnati direttamente dal committente mediante autocarri o furgoni. Le sedi di consegna della ditta concorrente sono da indicare nel presente modulo d'offerta. La prestazione comprende il trasporto e lo smaltimento degli scarti vegetali ".
Il capitolato d'appalto prevedeva inoltre che il subappalto era ammesso " unicamente per la messa a disposizione della/e piazza/e di deposito e le opere di carico e di trasporto degli scarti vegetali ", con la precisazione che " la prestazione principale e caratteristica della commessa (smaltimento degli scarti vegetali) deve essere eseguita in proprio dall'offerente ".
B.
B.a. Entro il termine impartito sono state inoltrate al committente tre offerte. Il 30 luglio 2020, vagliata la situazione, il Comune ha assegnato la commessa alla ditta A._ AG, prima classificata con 89.17 punti.
B.b. Contro tale decisione di aggiudicazione, la ditta B._ SA, seconda classificata con 87.23 punti, è insorta davanti al Tribunale cantonale amministrativo del Cantone Ticino (di seguito: il Tribunale amministrativo), postulando l'annullamento della decisione impugnata e l'aggiudicazione della commessa a suo favore.
B.c. Il 2 novembre 2020, il Tribunale amministrativo ha accolto il ricorso, annullato la decisione di aggiudicazione del 30 luglio 2020, escluso la A._ AG dalla gara e attribuito la commessa alla B._ SA. I Giudici cantonali hanno ritenuto, in sostanza, che l'aggiudicataria avrebbe dovuto essere esclusa dalla gara perché la sua offerta prevedeva il subappalto a un'altra ditta - la C._ SA - di prestazioni che, secondo il bando di concorso, avrebbero dovuto essere eseguite in proprio (vagliatura e macinatura degli scarti vegetali prima del trasporto verso il luogo di smaltimento). Constatando che nulla lasciava pensare che l'offerta della B._ SA non fosse conforme alle esigenze poste dalla legge e dal capitolato d'appalto, la Corte cantonale le ha quindi attribuito direttamente la commessa.
C.
Il 12 novembre 2020, la A._ AG ha inoltrato dinanzi al Tribunale federale un ricorso sussidiario in materia costituzionale con cui domanda, protestate spese e ripetibili, l'annullamento della sentenza del Tribunale amministrativo del 2 novembre 2020 e la conferma della decisione di aggiudicazione del Comune di X._ del 30 luglio 2020. In via subordinata, la ricorrente chiede il rinvio degli atti alla Corte cantonale per nuovo giudizio.
Il Tribunale amministrativo si è riconfermato nelle motivazioni e nelle conclusioni della propria sentenza. Il Comune di X._ si è rimesso al giudizio di questa Corte. L'opponente ha presentato delle osservazioni e ha chiesto il rigetto del gravame. La ricorrente ha replicato. L'Ufficio di vigilanza sulle commesse pubbliche non si è pronunciato.
Con decreto presidenziale del 10 dicembre 2020 è stato parzialmente concesso l'effetto sospensivo al ricorso, nel senso che il contratto può essere concluso solo fino all'emanazione del giudizio del Tribunale federale.

Diritto:
1.
Il Tribunale federale esamina d'ufficio la sua competenza (<ref-law>) e verifica con piena cognizione l'ammissibilità dei gravami che gli vengono sottoposti (<ref-ruling> consid. 1).
1.1. In ambito di commesse pubbliche, il ricorso in materia di diritto pubblico è ammissibile solo se il valore stimato della commessa raggiunge il valore soglia determinante previsto dall'art. 83 lett. f cifra 2 LTF e, cumulativamente, se la fattispecie pone una questione di diritto d'importanza fondamentale giusta l'art. 83 lett. f cifra 1 LTF. Incombe alla parte ricorrente dimostrare l'adempimento di queste due condizioni, a meno che la questione di principio si imponga con evidenza (cfr. <ref-law>; <ref-ruling> consid. 1.2). Se queste condizioni di ammissibilità non sono adempiute, occorre verificare se sia aperta la via del ricorso sussidiario in materia costituzionale (<ref-law>).
Nella fattispecie, la ricorrente non sostiene che la causa verte su una questione giuridica d'importanza fondamentale, la quale non appare inoltre evidente (cfr. sentenza 2D_25/2018 del 2 luglio 2019 consid. 1.1, non pubblicato in <ref-ruling>). A prescindere dal raggiungimento o meno del valore soglia richiesto dall'art. 83 lett. f cifra 2 LTF, è dunque a ragion veduta che l'interessata ha formato un ricorso sussidiario in materia costituzionale.
1.2. La sentenza impugnata ha annullato la decisione del 30 luglio 2020 con la quale il Comune aveva assegnato alla ricorrente la commessa concernente l'aggiudicazione del servizio di ritiro e smaltimento degli scarti vegetali dei propri ecocentri per il periodo 2020-2021. L'interessata può dunque prevalersi di un interesse legittimo a ricorrere (<ref-law>; cfr. sentenza 2D_24/2019 del 10 febbraio 2020 consid. 1.2).
1.3. Per il resto, interposto tempestivamente (art. 117 cum <ref-law>) contro una decisione finale (art. 117 cum <ref-law>) di un tribunale cantonale superiore (art. 114 cum art. 86 cpv. 1 lett. d e cpv. 2 LTF), il gravame è ricevibile.
1.4. Giusta l'<ref-law> (applicabile sulla base dell'<ref-law>), davanti al Tribunale federale possono essere addotti nuovi fatti e nuovi mezzi di prova soltanto se ne dà motivo la decisione dell'autorità inferiore. Dal momento che le condizioni per un richiamo all'<ref-law> non sono né date né sostanziate, nella misura in cui i documenti allegati al ricorso non facessero parte dell'incarto cantonale, essi non possono essere vagliati. In particolare, il messaggio elettronico del Dicastero sicurezza e spazi urbani del Comune di X._ (allegato 5), che porta una data (11 novembre 2020) posteriore a quella del giudizio impugnato, non può essere preso in considerazione.
2.
Con il ricorso sussidiario in materia costituzionale può essere censurata unicamente la violazione di diritti costituzionali (<ref-law>). Tale questione non è inoltre esaminata d'ufficio; occorre che il ricorrente specifichi quali diritti fondamentali ritiene lesi ed esponga le sue censure in modo chiaro, circostanziato ed esaustivo (cfr. art. 106 cpv. 2 cum <ref-law>; <ref-ruling> consid. 1.3; sentenza 2C_337/2019 del 4 marzo 2021 consid. 2.1). Nell'ambito specifico delle commesse pubbliche è esclusa sia la semplice censura relativa a una scorretta applicazione del diritto cantonale o intercantonale, sia quella relativa alla violazione dei principi di trasparenza e parità di trattamento degli offerenti, che sottendono tale normativa e ai quali non può essere riconosciuto il rango di garanzia costituzionale autonoma. Può per contro essere censurata un'applicazione arbitraria (<ref-law>) del diritto cantonale e/o intercantonale degli acquisti pubblici, poiché gli offerenti dispongono di un interesse giuridicamente protetto a che la corrispondente legislazione venga rispettata (sentenze 2C_1078/2019 del 22 giugno 2021 consid. 3.3; 2C_825/2018 del 2 marzo 2021 consid. 4.1; 2D_17/2020 del 30 novembre 2020 consid. 2.1). Una decisione è arbitraria (<ref-law>) quando è in manifesta contraddizione con la situazione di fatto, è gravemente lesiva di una norma o di un principio giuridico chiaro e indiscusso, oppure quando urta in modo scioccante il sentimento di giustizia ed equità. La decisione deve inoltre essere arbitraria nel suo risultato e non solo nella sua motivazione. Il semplice fatto che un'altra soluzione, diversa da quella adottata dall'autorità precedente, potrebbe entrare in linea di conto o sarebbe addirittura preferibile non costituisce arbitrio (<ref-ruling> consid. 5.4; <ref-ruling> consid. 7.3).
3.
In una censura di ordine formale, che va esaminata in primo luogo (<ref-ruling> consid. 3), la ricorrente invoca una violazione del suo diritto di essere sentita (<ref-law>), lamentando una motivazione carente da parte dell'autorità precedente in merito alla qualifica delle operazioni di vagliatura e macinatura degli scarti vegetali quale "prestazione principale" ai sensi del capitolato d'appalto. A mente dell'insorgente, alcune delle censure e delle argomentazioni da lei sollevate a tal proposito in sede cantonale non sarebbero state adeguatamente esaminate dal Tribunale amministrativo (ricorso, pag. 7 segg.).
3.1. Il diritto di essere sentito garantito dall'<ref-law> comprende vari aspetti; tra questi, il diritto a una decisione motivata (cfr. <ref-ruling> consid. 5.1). Per costante giurisprudenza, la motivazione di una decisione è sufficiente e l'<ref-law> è rispettato quando la parte interessata è messa in condizione di rendersi conto della portata del provvedimento che la concerne e di poterlo impugnare con cognizione di causa (cfr. <ref-ruling> consid. 5.2). In quest'ottica basta che l'autorità esponga, almeno brevemente, i motivi che l'hanno indotta a decidere in un senso piuttosto che in un altro. Essa non è quindi tenuta a pronunciarsi in modo esplicito ed esaustivo su tutti gli argomenti sollevati, ma può limitarsi alle sole circostanze che, senza arbitrio, appaiono rilevanti per il giudizio in quanto atte a influire sulla decisione di merito (cfr. <ref-ruling> consid. 4.2).
3.2. Nel caso di specie, la ricorrente, nella sua risposta del 7 settembre 2020 al ricorso interposto dalla B._ SA davanti al Tribunale amministrativo e nella successiva duplica del 5 ottobre 2020, aveva esposto le ragioni per le quali riteneva che le operazioni di vagliatura e macinatura subappaltate alla C._ SA costituivano unicamente "una fase preliminare del trasporto" e non potevano essere considerate come parte della prestazione principale e caratteristica della commessa (smaltimento degli scarti vegetali), riferendosi segnatamente a una pubblicazione dell'Ufficio federale dell'ambiente.
L'autorità precedente, dopo aver esposto le argomentazioni sollevate dalla A._ AG in sede cantonale (sentenza impugnata, pag. 3 seg. e 7 seg.), ha rilevato che il Committente aveva fissato inequivocabilmente le prestazioni che potevano essere subappaltate e che tra queste ultime non figuravano la vagliatura e la macinatura degli scarti vegetali, le quali costituivano già un pretrattamento dei rifiuti vegetali in parola e non potevano essere considerate semplicemente alla stregua di "fase preliminare del trasporto". Sebbene non abbia in tale contesto preso posizione sulla summenzionata pubblicazione dell'Ufficio federale dell'ambiente prodotta dalla A._ AG, considerando quindi implicitamente che tale documento non era determinante ai fini del litigio, la Corte cantonale ha dunque spiegato perché la tesi della A._ AG secondo cui la vagliatura e la macinatura costituivano una "preparazione degli scarti vegetali per il trasporto" (ricorso, pag. 7) non poteva in nessun caso essere condivisa. I Giudici cantonali hanno poi constatato che, quindi, l'offerta della A._ AG andava scartata in quanto essa prevedeva il subappalto di prestazioni che la ditta aggiudicataria avrebbe dovuto eseguire in proprio. Tale motivazione permette di capire gli elementi sui quali si è fondato il Tribunale amministrativo per considerare che l'interessata andava estromessa dalla gara e non è quindi lesiva del diritto di essere sentita della ricorrente. La censura relativa alla violazione dell'<ref-law> sollevata dall'insorgente non può dunque che essere scartata. Altra è la questione di sapere se le conclusioni alle quali è giunta l'autorità precedente vadano tutelate, aspetto che sarà esaminato più avanti.
4.
In un ulteriore capitolo del gravame intitolato "protezione dall'arbitrio (<ref-law>) " (ricorso, pag. 10 segg.), la ricorrente sostiene che la sua estromissione dalla commessa litigiosa sarebbe arbitraria. A mente dell'interessata, la macinatura degli scarti vegetali nella fase di carico del materiale rientrerebbe "chiaramente nelle prestazioni di trasporto e non nella prestazione principale di compostaggio, quale processo biologico controllato". Le operazioni di vagliatura e macinatura che l'insorgente prevedeva di subappaltare alla C._ SA erano dunque direttamente correlate con il trasporto e non rientravano nella prestazione principale (smaltimento degli scarti vegetali). Sempre secondo la ricorrente, la C._ SA avrebbe effettuato, sulle piazze di deposito, una semplice triturazione grossolana allo scopo di facilitare il trasporto degli scarti vegetali riducendone il volume, operazione che non iniziava "il processo biologico controllato del compostaggio". Conformemente a quanto previsto dagli atti di gara, le operazioni di vagliatura e macinatura in parola potevano dunque essere lecitamente subappaltate, contrariamente a quanto ritenuto in modo insostenibile dal Tribunale amministrativo. Pertanto, escludendola dalla gara per questo motivo, la Corte cantonale sarebbe incorsa in arbitrio.
A tal proposito, l'insorgente menziona anche un "accertamento dei fatti incompleto ed erroneo", rispettivamente un "apprezzamento arbitrario dei fatti rilevanti" (ricorso, pag. 10). Per come sono formulate e motivate, tali critiche si confondono tuttavia con la censura di violazione del divieto di arbitrio esposta poc'anzi e non vanno dunque esaminate separatamente.
4.1. A titolo preliminare va rammentato che, in materia di commesse pubbliche, l'autorità giudiziaria di primo grado esamina liberamente se il committente ha applicato in modo corretto la legislazione determinante. In tale contesto, quando il diritto materiale lascia a quest'ultimo un ampio potere di apprezzamento, ciò che è il caso in particolare nella fase di valutazione e di confronto delle offerte (<ref-ruling> consid. 3), il giudice deve tuttavia badare a non interferire indebitamente nella libertà di decisione del committente. L'autorità giudiziaria non deve infatti sostituire il proprio potere di apprezzamento a quello dell'ente appaltante riguardo all'aggiudicazione di una commessa pubblica, perché in tal caso adotterebbe un giudizio di opportunità esaminando l'adeguatezza della decisione, ciò che le è vietato dall'art. 16 cpv. 2 CIAP (cfr. <ref-ruling> consid. 3; sentenza 2C_1078/2019 del 22 giugno 2021 consid. 5.2.3). Essa può quindi intervenire unicamente in caso di abuso o di eccesso del potere di apprezzamento da parte del committente, ciò che in pratica può essere equiparato a un controllo limitato all'arbitrio (cfr. <ref-ruling> consid. 3; sentenza 2D_35/2017 del 5 aprile 2018 consid. 5.1). Nell'ambito di un ricorso sussidiario in materia costituzionale, il Tribunale federale dovrebbe poi esaminare se l'autorità cantonale di ultima istanza abbia fatto uso in maniera insostenibile del proprio potere di cognizione limitato, ciò che, come appena illustrato, equivale ad un controllo limitato all'arbitrio. Ora, in questo contesto, il Tribunale federale evita la cosiddetta duplice limitazione del potere di esame ( "Willkür im Quadrat"; "arbitraire au carré") ed esamina quindi liberamente se la Corte cantonale ha correttamente giudicato se il committente ha commesso abuso o eccesso del proprio potere d'apprezzamento; in altre parole il Tribunale federale vaglia liberamente se i giudici cantonali hanno correttamente applicato la nozione di arbitrio (sentenze 2C_1078/2019 del 22 giugno 2021 consid. 5.2.1; 2D_35/2017 del 5 aprile 2018 consid. 5.1; 2D_42/2016 del 3 ottobre 2017 consid. 5.1).
4.2. Nella fattispecie, il Comune ha considerato che le prestazioni subappaltate dalla A._ AG alla C._ SA, ossia la vagliatura e la macinatura degli scarti vegetali prima del trasporto verso il luogo di smaltimento, non rientravano nelle operazioni di compostaggio e non comportavano alcuna lavorazione effettiva del materiale. Tali prestazioni, che avevano unicamente lo scopo di diminuire il volume degli scarti vegetali per facilitarne il trasporto, potevano dunque essere lecitamente subappaltate (sentenza impugnata, pag. 3).
L'apprezzamento del Comune appare del tutto sostenibile. Infatti, il capitolato d'appalto prevedeva che il subappalto era ammesso "unicamente per la messa a disposizione della/e piazza/e di deposito e le opere di carico e di trasporto degli scarti vegetali" (supra lett. A.b). La ricorrente aveva dunque segnatamente dichiarato che avrebbe subappaltato alla C._ SA la "messa a disposizione della piazza di deposito" e il "carico" degli scarti vegetali, preceduto dalla "vagliatura e macinatura" degli stessi. Ora, considerare - alla stregua del committente - che la frantumazione degli scarti vegetali prima del trasporto verso il luogo di smaltimento, finalizzata ad agevolare le operazioni di carico e scarico, rientrava nella nozione di "opere di carico" il cui subappalto era esplicitamente permesso dal bando di concorso, equivale a interpretare quest'ultimo in modo tutt'altro che scioccante. Appare anzi ragionevole procedere, prima del carico, a una macinatura preliminare degli scarti vegetali al fine di poter sfruttare meglio lo spazio a disposizione e ottimizzare il trasporto del materiale verso il luogo di smaltimento. Non è inoltre insostenibile ritenere che tale operazione non rientra nelle operazioni di compostaggio vero e proprio, le quali vengono eseguite in seguito presso gli appositi centri di smaltimento. In queste circostanze, rammentato l'esteso potere di apprezzamento di cui dispone l'entità aggiudicatrice (cfr. supra consid. 4.1), il Comune poteva in maniera del tutto sostenibile giudicare che il bando di concorso permetteva il subappalto alla C._ SA delle prestazioni summenzionate. Pertanto, sostituendo la propria interpretazione a quella - perfettamente sostenibile - dell'ente appaltante riguardo al tenore del bando, e deducendone che la ricorrente doveva essere esclusa dalla gara, la Corte cantonale ha ecceduto in maniera palese il proprio potere d'apprezzamento, ciò che non è ammissibile.
5.
5.1. Per quanto precede, il ricorso si rivela fondato e va pertanto accolto. Ritenuto che, con decreto presidenziale del 10 dicembre 2020, è stato parzialmente concesso l'effetto sospensivo al ricorso, nel senso che il contratto poteva essere concluso solo fino all'emanazione del presente giudizio, va accolta la richiesta formulata con il ricorso in via principale. La sentenza del Tribunale amministrativo del 2 novembre 2020 è dunque annullata e la decisione di aggiudicazione del Comune di X._ del 30 luglio 2020 è confermata.
5.2. Le spese giudiziarie seguono la soccombenza e sono pertanto poste a carico dell'opponente (<ref-law>), la quale verserà inoltre alla ricorrente un'indennità di fr. 3'500.-- per ripetibili della sede federale (art. 68 cpv. 1 e 2 LTF). Non vengono assegnate ripetibili al Comune di X._ (<ref-law>).
5.3. Da parte sua, il Tribunale amministrativo dovrà nuovamente esprimersi sulle spese e sulle ripetibili della sede cantonale (art. 68 cpv. 5 e art. 107 cpv. 2 LTF).

Per questi motivi, il Tribunale federale pronuncia:
1.
Il ricorso è accolto. La sentenza del 2 novembre 2020 del Tribunale amministrativo del Cantone Ticino è annullata e la decisione di aggiudicazione del Comune di X._ del 30 luglio 2020 è confermata.
2.
Le spese giudiziarie di fr. 3'000.-- sono poste a carico dell'opponente.
3.
L'opponente verserà alla ricorrente un'indennità di fr. 3'500.-- a titolo di ripetibili per la sede federale.
4.
La causa è nel contempo rinviata al Tribunale amministrativo del Cantone Ticino per nuova decisione sulle spese e sulle ripetibili della sede cantonale.
5.
Comunicazione ai patrocinatori della ricorrente e dell'opponente, al Comune di X._, nonché al Tribunale amministrativo e all'Ufficio di vigilanza sulle commesse pubbliche del Cantone Ticino.