The reason is because it tries to run the other commands before you finish the "pline" command. You need to delay the operation of the rest of the routine until it is finished. It does not do this for you with only 1 PAUSE option.
Try This - note the "cmdactive" loop to pause the "pline" command until you are finished drawing the polyline (see my comments for other improvements):
(Defun C:TestPl (/ plccLayer oecho oplwid ss); Localize your variables
(setq plccLayer (getvar "clayer") oplwid (getvar "plinewid") oecho (getvar "cmdecho"))
(setvar "plinewid" 0.015) ;; Don't use command to set system variables.
;; You want CMDECHO set to 1 here so you can see pline prompts.
;; FYI - the "dot" before the command ensures that the true command is used (not redefined),
;; the "underscore" will translate command names and options for international versions.
(COMMAND "._-LAYER" "_M" "FIBER" "_C" "130" "" "_L" "FENCELINE1" "" ""
"._PLINE"
)
;; This loops the pause until the command is over.
(while (= (logand (getvar "cmdactive") 1) 1)
(command pause)
)
;; reset system variable back to original values.
(setvar "clayer" plccLayer)
(setvar "PLINEWID" oplwid)
;; Set cmdecho here to 0 to not see the change command.
(setvar "CMDECHO" 0)
(setq ss (ssget "L"))
(command "._Change" ss "" "_P" "_S" 0.25 "")
;; Reset cmdecho back to original value.
(setvar "cmdecho" oecho)
(princ)
)