Faits:
A. En février 2010, une enquête a été ouverte contre A._ par l'Office de contrôle du Service de surveillance des relations du travail du canton de Neuchâtel (ci-après: le SSRT). Dans un premier temps, cette enquête a été confiée à B._, inspectrice du marché cantonal de l'emploi. Celle-ci a entrepris divers actes d'instruction, accompagnée notamment de C._, alors Conseiller d'Etat du canton de Neuchâtel.
A partir de mars 2010, B._ a sollicité du procureur D._ différentes réquisitions, que le procureur a délivrées. Une enquête préalable pour escroquerie aux services sociaux a été ouverte. A._ a entrepris diverses démarches pour contester les méthodes d'enquête de B._ et l'intervention de C._. En juillet 2010, le Procureur général du canton de Neuchâtel est alors intervenu auprès du conseiller d'Etat compétent pour que l'enquête soit confiée à d'autres collaborateurs du service précité.
Dès le mois de juillet 2010, A._ s'est opposée à différentes opérations d'enquête menées par le procureur D._ et elle a émis divers griefs à son encontre, sans toutefois requérir sa récusation. Elle a cependant formé une requête en constatation de la nullité de la procédure auprès de la Chambre d'accusation du Tribunal cantonal du canton de Neuchâtel (ci-après: la Chambre d'accusation). Rejetant cette requête par arrêt du 1er avril 2011, la Chambre d'accusation a notamment relevé que les critiques relatives au manque d'indépendance et d'impartialité du procureur auraient dû être faites dans une demande de récusation, que l'intéressée avait clairement renoncé à introduire.
B. Le 11 avril 2011, A._ a demandé la récusation du procureur D._. Cette requête était notamment motivée par la découverte d'un courrier adressé le 31 janvier 2011 par le procureur à la Chambre d'accusation dans le cadre de la requête en constatation de nullité de la procédure mentionnée ci-dessus. Elle se fondait également sur un courrier du procureur daté du 3 novembre 2010. Par arrêt du 28 juin 2011, l'Autorité de recours en matière pénale du Tribunal cantonal du canton de Neuchâtel (ci-après: le Tribunal cantonal) a rejeté la demande de récusation. Cette autorité a considéré que la requête était manifestement tardive dans la mesure où elle était fondée sur les éléments ressortant du courrier du 3 novembre 2010 et qu'elle était mal fondée en ce qui concerne le courrier du 31 janvier 2011. Le Tribunal cantonal a également rejeté la requête d'assistance judiciaire que l'intéressée avait présentée.
C. Agissant par la voie du recours en matière pénale, A._ demande au Tribunal fédéral d'annuler cet arrêt et d'admettre la demande de récusation du procureur D._, subsidiairement de renvoyer l'affaire à l'instance précédente pour nouvelle décision. Elle se plaint d'arbitraire dans la constatation des faits, ainsi que d'une violation de l'art. 56 let. f du code de procédure pénale suisse (CPP; RS 312.0) et de l'art. 29 al. 3 Cst. concernant l'assistance judiciaire. Elle requiert en outre l'octroi de l'assistance judiciaire pour la présente procédure. Le Tribunal cantonal a renoncé à se déterminer. Au terme de ses observations, le procureur D._ conteste devoir se récuser. La recourante a présenté des observations complémentaires.

Considérant en droit:
1. Conformément aux art. 78 et 92 al. 1 LTF, une décision relative à la récusation d'un magistrat pénal peut faire immédiatement l'objet d'un recours en matière pénale. La recourante, auteur de la demande de récusation, a qualité pour agir (<ref-law>). Pour le surplus, interjeté en temps utile contre une décision prise en dernière instance cantonale le recours est recevable au regard des art. 80 al. 1 et 100 al. 1 LTF.
2. Dans un premier grief, la recourante se plaint d'arbitraire dans la constatation des faits.
2.1 En matière d'appréciation des preuves et d'établissement des faits, il y a arbitraire (pour une définition de l'arbitraire, cf. <ref-ruling> consid. 2.4 p. 5; <ref-ruling> consid. 3.1 p. 265 s.) lorsque l'autorité n'a manifestement pas compris le sens et la portée d'un moyen de preuve, si elle ne prend pas en compte, sans raison sérieuse, un élément de preuve propre à modifier la décision ou lorsqu'elle tire des constatations insoutenables des éléments recueillis (<ref-ruling> consid. 2.1 p. 9; <ref-ruling> consid. 2a p. 41).
2.2 En l'espèce, la recourante reproche à l'autorité précédente d'avoir retenu arbitrairement qu'elle avait renoncé à demander la récusation du procureur malgré les critiques qu'elle avait formulées à son encontre dès juillet 2010. Il est toutefois incontestable qu'elle n'a pas requis la récusation de l'intéressé à ce moment-là et on ne voit pas en quoi il est insoutenable de le mentionner dans l'arrêt attaqué, qui se réfère de surcroît à un courrier du 9 septembre 2010 dans lequel la recourante écrit expressément ne pas vouloir demander la récusation du procureur D._. On comprend par ailleurs que la recourante reproche au Tribunal cantonal de n'avoir pas tenu compte des critiques qu'elle avait émises à l'époque, ce qu'il aurait dû faire selon elle pour apprécier l'activité du procureur sur la base d'une "vue d'ensemble". Ce grief se confond avec le moyen tiré d'une violation de l'<ref-law>, qui est examiné ci-après. Ce premier moyen doit donc être rejeté.
3. Contestant le rejet de sa demande de récusation, la recourante se plaint essentiellement d'une violation de l'art. 56 let. f CPP.
3.1 La garantie d'un tribunal indépendant et impartial instituée par les art. 30 al. 1 Cst. et 6 par. 1 CEDH permet d'exiger la récusation d'un juge dont la situation ou le comportement est de nature à faire naître un doute sur son impartialité (<ref-ruling> consid. 3a p. 73). Une garantie similaire à celle de l'art. 30 al. 1 Cst. est déduite de l'art. 29 al. 1 Cst., s'agissant de magistrats qui, comme en l'espèce, n'exercent pas de fonctions juridictionnelles au sens étroit; cela étant, les principes déduits de l'art. 30 Cst. ne s'appliquent pas sans autre examen aux autorités d'instruction et de poursuite pénale, dont le rôle diffère de celui de l'autorité de jugement (cf. <ref-ruling> consid. 2b p. 198; <ref-ruling> consid. 3b p. 123 et les arrêts cités). La récusation ne s'impose pas seulement lorsqu'une prévention effective du magistrat est établie, car une disposition interne de sa part ne peut guère être prouvée; il suffit que les circonstances donnent l'apparence de la prévention et fassent redouter une activité partiale du magistrat. Seules les circonstances constatées objectivement doivent être prises en considération; les impressions purement individuelles d'une des parties au procès ne sont pas décisives (<ref-ruling> consid. 3.2.1 p. 608; <ref-ruling> consid. 4.2 p. 21; <ref-ruling> consid. 1.1 p. 25; <ref-ruling> consid. 2b p. 198).
L'<ref-law> concrétise ces garanties: divers motifs de récusation sont énumérés aux let. a à e, la let. f imposant la récusation "lorsque d'autres motifs, notamment un rapport d'amitié étroit ou d'inimitié avec une partie ou son conseil, sont de nature à le rendre suspect de prévention". L'art. 56 let. f CPP a la portée d'une clause générale recouvrant tous les motifs de récusation non expressément prévus aux lettres précédentes de l'<ref-law> (arrêt 1B_131/ 2011 du 2 mai 2011 consid. 3.1). Aux termes de l'<ref-law>, la partie qui entend demander la récusation doit déposer sa requête "sans délai" et "dès qu'elle a connaissance du motif de récusation". Cette exigence découle d'une pratique constante, selon laquelle celui qui omet de se plaindre immédiatement de la prévention d'un magistrat et laisse le procès se dérouler sans intervenir, agit contrairement à la bonne foi et voit son droit se périmer (ATF <ref-ruling> consid. 4.3.1; <ref-ruling> consid. 4.3 p. 496; <ref-ruling> consid. 4.3 p. 75 et les arrêts cités).
3.2 La recourante fonde sa demande de récusation sur "une série d'interventions" du procureur D._ depuis le début de l'enquête et sur deux nouveaux éléments plus récents, à savoir un courrier du procureur daté du 31 janvier 2011 - dont elle aurait eu connaissance le 5 avril 2011 - et un courrier du 3 novembre 2010. Ces deux derniers éléments l'auraient finalement décidée à déposer une demande de récusation. A l'appui de son recours devant le Tribunal fédéral, la recourante invoque en outre un fait nouveau, à savoir une ordonnance pénale rendue à son encontre par le procureur D._ le 8 août 2011, donc après que l'arrêt attaqué a été rendu. Aux termes de l'<ref-law>, aucun fait nouveau ni preuve nouvelle ne peut être présenté à moins de résulter de la décision de l'autorité précédente. Or, la recourante ne démontre pas en quoi cette exception serait remplie et il n'apparaît pas évident qu'elle le soit. Le fait nouveau invoqué est donc irrecevable.
3.3 Le Tribunal cantonal a considéré que le motif fondé sur le courrier du 3 novembre 2010 était tardif, car la recourante avait eu connaissance de cet élément à l'époque. Il a implicitement fait le même raisonnement pour les interventions antérieures du procureur, puisqu'il a rappelé que la recourante avait renoncé à déposer une demande de récusation sur cette base. C'est en vain que la recourante conteste cette appréciation, dès lors qu'un examen d'ensemble, prenant en compte les éléments précités, aboutit également au rejet de la demande de récusation (cf. consid. 3.4.2).
3.4 Il n'appartient pas au Tribunal fédéral de rechercher dans le dossier l'ensemble des critiques que l'intéressée a pu formuler à l'encontre du procureur depuis le début de l'enquête. Conformément aux exigences de motivation déduites de l'<ref-law>, c'est en effet à la recourante qu'il incombe d'exposer les éléments qui justifiaient, selon elle, la récusation du procureur visé. L'examen de l'activité de ce dernier se limitera donc aux interventions mentionnées dans l'écriture de recours.
Par ailleurs, il convient de ne pas perdre de vue que la présente affaire a uniquement pour objet l'instruction conduite par le procureur D._ contre la recourante pour escroquerie aux services sociaux. Elle ne concerne pas la plainte déposée par l'intéressée auprès du Procureur général du canton de Neuchâtel contre B._ et C._ pour dénoncer les mesures d'enquête dont elle a fait l'objet. Il s'agit donc uniquement d'examiner si le procureur D._ a fait preuve de l'impartialité requise dans le cadre de l'instruction dirigée contre la recourante.
3.4.1 Le premier élément dont se prévaut la recourante est un courrier daté du 3 novembre 2010, dans lequel le procureur a laissé entendre que ses avocats avaient connaissance des travaux de la commission d'enquête parlementaire examinant l'activité de C._. Ce courrier est cependant formulé de manière prudente, puisqu'il se limite à constater que le contenu des investigations de cette commission "semble apparemment connu des mandataires de la recourante". Il ne révèle pas que le procureur impute un comportement déloyal à la recourante ou à ses avocats et il ne fonde aucune prévention relative aux infractions reprochées à l'intéressée.
Est également invoqué un courrier que le procureur a adressé le 31 janvier 2011 à la Chambre d'accusation, dans le cadre de la requête en constatation de nullité de la procédure déposée devant cette autorité. Par ce courrier, le procureur remettait à la Chambre d'accusation "un message transmis par le président du Grand Conseil neuchâtelois qui pourrait être utile le cas échéant [...] pour apprécier la situation" dans le cadre de la requête précitée. Le message en question, annexé sans autre commentaire au courrier du procureur, est un courriel du président du Grand Conseil neuchâtelois daté du 27 janvier 2011, ayant lui-même pour objet de transmettre un courriel envoyé le 24 janvier 2011 par C._ à la présidente de la commission d'enquête parlementaire. Ce dernier message, également annexé au courrier du procureur, consiste en substance en une justification de C._, exposant que la pratique qu'il avait adoptée dans cette affaire était en vigueur depuis plus de dix ans et qu'elle se fondait sur un décret mentionnant notamment que les inspecteurs du marché cantonal de l'emploi étaient "compétents pour les infractions à l'aide sociale" et qu'ils étaient "agents de la police judiciaire". On ne saurait suivre la recourante lorsqu'elle prétend que la transmission de ces documents par le procureur visait à "valider juridiquement les exactions commises" par C._ et B._. On peut en effet supposer que le procureur entendait étayer la régularité de certaines preuves administrées au début de l'instruction, ce qu'on ne saurait reprocher à un représentant du ministère public et ce qui ne dénote aucune prévention à l'encontre de la recourante.
Quant aux autres éléments avancés, ils n'apparaissent guère pertinents pour juger la demande de récusation litigieuse. Tout d'abord, l'amitié supposée entre le procureur et B._ n'est aucunement établie. La recourante fonde cette hypothèse sur le seul fait que la prénommée s'est adressée au début de l'enquête directement au procureur en question et non pas simplement au ministère public. Or, le procureur a déjà expliqué comment l'intéressée avait pu s'adresser directement à lui, sans que cela ne soit remis en cause dans le présent recours. La recourante reproche également au procureur d'avoir continué de transmettre des réquisitions au SSRT "alors qu'il ne pouvait plus ignorer la nature de la relation entre C._ et B._". On ne voit cependant pas en quoi la connaissance de ce fait devait dissuader le procureur de poursuivre son travail en transmettant des réquisitions au SSRT. De même, on ne saurait lui faire grief de n'avoir pas écarté B._ du dossier, dès lors qu'il n'apparaît pas que cela relève de sa compétence.
3.4.2 En définitive, que ces éléments soient pris individuellement ou dans leur ensemble, ils ne sont pas de nature à faire naître un doute sur l'impartialité du procureur visé par la demande de récusation. Aucune des critiques émises par la recourante n'a trait aux infractions qui lui sont reprochées et à un éventuel parti pris du procureur quant à sa culpabilité. Ses griefs concernent plutôt les interventions de B._ et C._ dans la phase préliminaire de l'enquête dirigée contre elle, interventions qui ont par ailleurs fait l'objet d'une plainte de sa part auprès du Procureur général. Les critiques formulées par la recourante à l'encontre du procureur D._ ne permettent pas de remettre en doute l'impartialité de ce magistrat et ne dénotent aucune prévention à son encontre. Il n'y a donc pas de motif de s'écarter de l'arrêt attaqué, de sorte que la demande de récusation doit être rejetée.
4. Dans un dernier grief, la recourante se plaint d'une violation de l'art. 29 al. 3 Cst. au motif que le Tribunal cantonal a rejeté sa requête d'assistance judiciaire. Aux termes de l'art. 29 al. 3 Cst., toute personne qui ne dispose pas de ressources suffisantes a droit à l'assistance judiciaire gratuite, à moins que sa cause paraisse dépourvue de toute chance de succès. Le Tribunal cantonal a considéré que la demande de récusation présentée par la recourante était vouée à l'échec car manifestement tardive sur un point et manifestement mal fondée sur l'autre. Cette appréciation peut être confirmée, même si le présent arrêt se fonde sur un examen d'ensemble prenant en considération des motifs que l'instance précédente avait considérés comme tardifs. En effet, cela ne change rien quant à l'appréciation des chances de succès de la demande de récusation, qui était manifestement vouée à l'échec. Ce moyen doit donc lui aussi être rejeté.
5. Il s'ensuit que le recours doit être rejeté, dans la mesure de sa recevabilité. Dès lors que le présent recours ne présentait pas davantage de chances de succès que la demande de récusation faisant l'objet de l'arrêt querellé, la requête d'assistance judiciaire doit être rejetée (<ref-law>). La recourante, qui succombe, doit par conséquent supporter les frais de la présente procédure (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté, dans la mesure où il est recevable.
2. La requête d'assistance judiciaire est rejetée.
3. Les frais judiciaires, arrêtés à 2'000 fr., sont mis à la charge de la recourante.
4. Le présent arrêt est communiqué aux parties et au Tribunal cantonal du canton de Neuchâtel, Autorité de recours en matière pénale.
Lausanne, le 11 novembre 2011
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président: Fonjallaz
Le Greffier: Rittener