Searching for items in list
It a simple problem to solve.

You are first asking for the names of every item.

set filelist to name of every item in folder (path to desktop)


Which returns a list of the names. As text items.

Then you want to  do your search. But in your code you are asking for the name of the text item.

Thats why you are getting the error. The text item does not have a name.

Change the line:

if {filelist's item i}'s name begins with "Work" then set endlist's end to filelist's item i


to

if filelist's item i begins with "Work" then set endlist's end to filelist's item i


UPDATE: 
In response to your comment.

You can create a list of the names of the items found on the desktop whose name  begins with for example "Work"

Doing it this way may be better.

Here you ask for a list containing the names  of any item found whose name (returned as a text item text) begins with ..

tell application "Finder"

    set filelist to name of every item in folder (path to desktop) whose name begins with "Work"
end tell