Html Templating for a WIP static site generator, written in Javascript
Here's a few pointers to help out:

I see you're using both let and var in there - be consistent and just choose one.
You're escaping a lot of regular expression characters that don't need to be escaped - it makes the regex less readable. i.e. /\&lt;\!\-\- template:(?&lt;label&gt;(?:(?!\&lt;\!\-\-).)+) \-\-\&gt;/g could be written as /&lt;!-- template:(?&lt;label&gt;(?:(?!&lt;!--).)+) --&gt;/g
Often it's good to name functions as verbs. i.e. just rename dataInject to injectData and fileInject to injectFile, it reads better.
Right now, if there was an error reading the template file, you'll always get the same message logged: error injecting file '&lt;file name&gt;'. It doesn't matter if node didn't have permission to access it, or if the file did not exist, you won't get any more information besides that log message. What's worse, you don't rethrow any error, so the program will continue trying to run even though the template has issues. I would just take out the try-catch completely, the original error usually has the most useful information to help debug problems.
I assume this injection logic is meant to be used by a server. With that use case in mind, you don't want to use the sync versions of the file-system functions - it means the server is unable to handle any other request while it's doing a file operation. Instead of fs.readFileSync(), use fs.readFile(), or even better, fs.promises.readFile().
The if (!matches.includes(match)) line isn't doing anything. matches is an array of arrays while match is a match object, match will never be inside matches.
Any reason why data is a list of lists and not an object (or a Map)? Why not just have data equal { one: 'apple', three: 'orange', ... }. If some function needs it in the list-of-list format, it can just call Object.entries() on it.
Finally, I just want to warn against re-inventing the wheel. There's plenty of great templating systems already out there (i.e. handlebars.js) that come with plenty of great features and built-in XSS protection. If your codebase only needs templates in one or two places, then I can understand preferring to throw together something simple instead of adding a new dependency, but if you're going to be using these templates a lot, it might be better to use a pre-built solution instead of maintaining your own.