Indeed you are correct, and it evaluates fine in an identifier without the use of $+'s. The are just two reasons i can think of why that error with describe would occur. First is if they are trying to read from a file that does not exis, and second would be if the path contains a comma.
To solve an issue with comma's in path's, simply assign the path to a local variable and then use the variable in the $read. Try it like this SonnyZA.
on *:TEXT:*:*: {
if (lol isin $1-) {
var %dfile .\txt\lol.txt
describe $target $read(%dfile)
}
}